1. 합성곱 신경망의 구성 요소
* 합성곱: 이미지 분류에 특화된 신경망
밀집층과 비슷하게 입력과 가중치를 곱하고 절편을 더하는 선형 계산임, 하지만 밀집층과는 달리 각 합성곱은 입력 전체가 아닌 일부만 사용하여 계산을 수행
합성곱 신경망에서 교차상관합성곱 연산)을 사용하는 이유?
=> 모델의 훈련과정에서 가중치를 업데이트 하는 과정과 유사.
* 합성곱 층의 필터는 밀집층의 뉴런에 해당.필터의 가중치와 절편을 종종 커널이라고도 부르며 자주 사용되는 커널은(3,3)이다.
* 특성 맵은 합성곱 층이나 풀링 층의 출력 배열을 의미한다. 합성곱 층에서 5개 필터를 적용하면 5개 특성 맵이 만들어짐
* 패딩은 합성곱 층의 입력 주위에 추가한 0으로 채워진 픽셀. 합성곱 층의 출력 크기를 입력과 동일하게 만들기 위해 입력에 패딩을 추가하는 것을 세임 패딩이라고 함
* 풀링은 특성 맵의 가로세로 크기를 줄이는 역할을 함. 대표적으로 쓰이는 풀링은 (2,2)이며 입력을 절반으로 줄여줌
2. 합성곱 신경망을 사용한 이미지 분류
* TensorFlow
- Conv2D 클래스 : 합성곱 층
입력의 너비와 높이 방향의 합성곱 연산을 구현한 클래스, 첫번째 매개변수는 합성곱 필터의 개수
- kernel_size 매개변수는 필터의 커널 크기를 지정
- strides 매개변수는 필터의 이동 간격을 지정, 기본값은=1
- padding 매개변수는 패딩 타입을 지정 'valid', 'same'
- activation 매개변수는 합성곱 층에 적용할 활성화 함수를 지정
- MaxPooling2D 클래스 : 최대값 풀링
입력의 너비와 높이를 줄이는 풀링 연산을 구현한 클래스, 첫번째 매개변수는 풀링의 크기 지정
- strides 매개변수는 필터의 이동 간격을 지정, 기본값은=1
- padding 매개변수는 패딩 타입을 지정 'valid', 'same'
- plot_model() 케라스 모델 구조를 그리거나 파일로 저장
- 첫번째 매개변수에 케라스 모델 객체를 전달
* matplotlib
- bar()는 막대그래프를 출력
- 매개변수는 x,y축 값을 리스트나 넘파이 배열로 전달
- width 매개변수로 막대의 두께 지정
3. 합성곱 신경망의 시각화
* 가중치 시각화
* 특성 맵 시각화
* 함수형 API
'[ML&DL]' 카테고리의 다른 글
[ML&DL] 텍스트를 위한 인공 신경망 (0) | 2023.03.15 |
---|---|
[ML&DL] 딥러닝 입문 (0) | 2023.03.13 |
[ML&DL] 비지도학습 (0) | 2023.03.10 |
[ML&DL] 트리 알고리즘 (0) | 2023.03.09 |
[ML&DL] 다양한 분류 알고리즘 (0) | 2023.03.08 |