KT에이블스쿨

[KT 에이블스쿨 6기]DX트랙 10주차 후기

코린이파린이 2024. 11. 26. 16:58

CNN은 좀 어렵네요..

 

다른 딥러닝 개념들은 꾸준히 반복하면서 이해하고 있었지만 CNN의 구조는 다른 개념들보다 생소하게 느껴졌습니다.

특히 CNN은 공간적 특성을 활용해서 모델링을 하는 것이 익숙지가 않았습니다

그러므로 CNN을 공부할 때 어떻게 해야 할지 쉽지 않았지만, 반복을 통해 개념을 정확하게 이해하고자 합니다

 

추후 이 글을 보는 분들에게도 CNN의 개념을 어떻게 이해하는지 좋을지 후기로 남기고자 합니다


핵심  POINT

1.CNN 4가지 구조를 꼭 이해해야합니다
2. LLM모델과 Rangchain의 개념은 
3.Roboflow를 활용할 때 각 학습데이터에 객체탐지지 다양한 포즈나 각도 모습의 수가 많아야합니다

 

기본 구조 

cnn 기본구조 출처: 위키독스

 

-CNN의 기본 개념 요약

개념 설명 코드예시
CNN 이미지나 시계열 데이터와 같은 구조화된 데이터를 학습하는 딥러닝 알고리즘.
주요 목표는 특징 추출과 패턴 인식
 
입력 (Input) CNN의 입력 데이터로, 보통 2D 이미지를 사용. (e.g., 28×2828 \times 28 크기의 흑백 이미지). input_shape=(28, 28, 1)
합성곱층 (Convolution) 커널(필터)을 사용하여 이미지에서 특징을 추출.
특정 패턴을 학습하는 역할.
Conv2D(filters=32, kernel_size=(3, 3), activation='relu')
활성화 함수 (Activation Function) 비선형성을 추가하여 모델이 복잡한 패턴을 학습하도록 도움. 보통 ReLU를 사용. activation='relu'
풀링층 (Pooling) 이미지 크기를 줄이고, 계산량을 줄이며, 불변성을 증가시킴. 주로 MaxPooling 사용 MaxPooling2D(pool_size=(2, 2))
드롭아웃 (Dropout) 과적합 방지를 위해 일부 뉴런을 랜덤하게 제거. Dropout(rate=0.5)
완전 연결층 (Fully Connected Layer) 추출된 특징을 기반으로 최종 분류 또는 회귀를 수행 Dense(units=10, activation='softmax')
출력층 (Output Layer) 문제에 따라 적합한 활성화 함수와 출력 노드 개수 사용.
Softmax: 다중 분류, Sigmoid: 이진 분류.
Dense(units=1, activation='sigmoid') (이진 분류)

 

-CNN 코드 이해

코드 구성 설명 역할
Conv2D(filters, kernel_size, activation) 합성곱층 정의. 필터 개수와 커널 크기 설정. 활성화 함수로 ReLU 사용. 이미지의 주요 특징을 추출.
MaxPooling2D(pool_size) 풀링층 정의. 특징 맵의 크기를 줄이고 계산량 감소. 불변성 증가 및 과적합 방지.
Dropout(rate) 드롭아웃 정의. 지정된 비율의 뉴런을 학습에서 제외. 과적합 방지 및 모델의 일반화 성능 향상.
Flatten() 다차원 데이터(특징 맵)를 1차원으로 변환. 완전 연결층 입력으로 사용.
Dense(units, activation) 완전 연결층 정의. 출력 뉴런 개수와 활성화 함수 설정. 최종 분류 또는 예측 수행.
compile(optimizer, loss, metrics) 모델 컴파일. 옵티마이저, 손실 함수, 평가 지표 정의. 학습 준비 단계.
fit(X, y, epochs, batch_size) 모델 학습. 에포크와 배치 크기 설정. 데이터를 모델에 학습.

 

 

-LLM, Lagnchain모델에 대해서도 배웠지만, 신기한 나머지, 코드를 암기는 못했답니다. 우리가 사용하는 GPT도 LLM에서 출발했다는 것을 알게 되었고, 분야의 활용도가 너무나 다양하다는 것을 알게 되었습니다. 나중에 실력이 향상되면 챗봇을 직접 구현해보고 싶다는 0.001% 소망이 있었습니다 또한 딥러닝 심화과정에서 YOLO모델을 활용한 객체탐지 모델을 만드는 실습을 진행하였는데,

몇천 장의 사진으로 모델이 구분을 하는 것을 보고 신기했습니다. 다만 구분을 하기 위해 바운딩박스라는 것을 활용하지만 정확한 범위와 동일 사진이 다양한 모습(45도 회전, 다양한 각도)에서 찍힌 사진이 필요한 것을 알게 되었습니다.

 


느낀 점

 

1. 미니프로젝트 4차 5차는 얼마 남지 않았는데, 전처리 다시금 연습 많이 해서 팀원들에게 기여하고 싶다

2. 공부법을 바꾼 후 힘들지만, 그래도 조금씩 내 걸로 만드는 게 있어서 좋았다.

3. 매일 100%의 흡수보다는 70% 흡수만 해도 괜찮으니까 완벽하게 하기보다 나만의 속도로 꾸준히 하기! 

 

-나만의 속도로 나아가는 것이 중요합니다 그래야 포기를 하지 않거든요!-