Keras란
파이썬으로 구현된 딥러닝 모델 구축을 위한 고수준의 신경망API
Keras 특징
- 사용자 친화적 : 직관적인 API를 제공하여 모델을 쉽게 구축
- 모듈성 : 다양한 레이어, 활성화 함수, 손실함수를 조합하여 모델 구성 가능
- 확장성 : 새로운 모듈을 쉽게 추가하여 기능 확장 가능
활성화 함수
분류문제에사 마지막 출력층을 어떻게 해석할지
이진분류 -> 시그모이드
다중분류 -> 소프트맥스
시그모이드: “맞다/아니다” → 한 개 확률만 뽑으면 됨
소프트맥스: “여러 개 중 뭐냐” → 여러 확률을 동시에 뽑고 합이 1 되게 함
손실 함수
- 회귀 문제 : MSE, MAE
- 분류 문제
Binary Crossentropy : 이미지 텍스트 감정분석(긍/부정) -> 이진분류
Categorical Crossentropy : 다중 분류
옵티마이저
손실 함수를 최소화하여 가중치를 업데이트
- SGD: 그냥 기울기 따라 걷기
- Momentum: 이전 움직임 누적(관성) → 덜 흔들리고 빨라짐
- RMSprop: 파라미터별로 걸음 크기 자동 조절 → 튐 방지, 느림 보완
- Adam: Momentum + RMSprop 느낌(그래서 기본으로 많이 씀)
이미지 파일 인식
- 이미지 픽셀-> cnn/vision encoderr(vision Transformer)벡터로 변환 -> 특징 벡터 -> 텍스트 벡터와 결합 or 결과
DNN과 CNN의 차이
DNN : 일반적인 완전연결 신경망, MLP
- 각 층의 뉴런이 이전층의 모든 값과 전부 연결됨
- 입력이 이미지라면 보통 이미지를 일렬로 펼쳐서(Flatten)넣음
특징
1. 구조가 단순라고 어디든 쓸수있음(표 형태 데이터에 강함)
2. 하지만 이미지처럼 입력이 크면 파라미터 폭발
문제
- 픽셀의 공간구조(위치/근접)를 거의 활용 못함
CNN : 합성곱 신경망
- 작은 필터가 이미지를 슬라이딩하면서 특징을 뽑음
- 어디에 있든 비슷한 패턴이면 같은 특징을 잡아내는 구조
특징
1. 지역 연결 : 한 번에 주변(3X3)만 봄
2. 가중치 공유 : 같은 필터를 이미지 전체에 재사용 -> 파라미터 수가 크게 줄고, 패턴 검출이 효율적
즉,
CNN 필터 & 특징 맵
- 필터 : 힙상곱 연산에서 사용하는 커널(학습을 통해 최적의 값 찾고, 특정 특징 추출하는 역할)
- 특징맵 : 필터를 입력 데이터에 적용하여 얻은 출력
- 필터와 특징 맵의 관계 : 여러 개의 필터를 사용하면 여러개의 특징 맵 생성(서로 다른 특징 추출학습)
Stride
- 필터가 움직이는 보폭
1일경우 한칸씩 촘촘히 -> 출력 큼/ 정보 많이 봄
2일경우 두칸씩 건너뜀 -> 출력 작아짐/ 계산 빨라짐
=> stride 키우면 결과크기가 줄어든다
Padding
- 가장자리를 살리려고 테두리를 둘러주는것(보통 0으로)
padding 없음 : 가장자리 필터 덜 지나감 -> 출력 줄고, 가장자리 정보 손해
padding 있음 : 가장자리 포함 훑음 -> 출력 크기 유지
Pooling
- cnn에서 특징맵을 줄이는(압축)층
- Max Pooling : 그 구역에서 가장 큰 값
- Average Pooling: 그 구역의 평균을 남김
특징 맵을 작게 압축하면서 중요한 신호만 남겨서 빠르고 안정적으로 학습하게 하는 층
