본문 바로가기

[ML&DL]

[ML&DL] 이미지를 위한 인공 신경망

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