딥러닝
[딥러닝] 딥러닝 기본 공부
ccc3283
2022. 11. 12. 17:04
flatten layer는 추출된 주요 특징을 전결합층에 전달하기 위해 1차원 자료로 바꿔주는 layer이다.
이미지 형태의 데이터를 배열형태로 flatten하게 만들어준다.
batch size에 영향을 주지 않는다.
tf.keras.layers.Flatten()
from tensorflow.keras.layers import Dense
Dense(8, input_dim=3, activation='relu')
- input_dim은 입력층의 노드수
- 이러면 입력층의 노드수는 3개이고 은닉층의 노드수는 8이니 (활성화 함수는 relu)
- 총 3 * 8 즉 24개의 가중치가 만들어진다.
+) 여기서 자동으로 bias 즉 노드가 층이 가지고 있는 편향이 1개가 추가되서 파라미터는 (3 + 1) * 8 32개의 파라미터가 생긴다.
출처 : https://velog.io/@yuns_u/flatten%EA%B3%BC-dense
가중치 행렬
가중치 행렬이란 무엇일까요?
다음 강의에서 배우겠지만 신경망에서 실제로 학습되는 부분은 각 가중치입니다.
강의 노트에 있는 신경망 그림을 다시 가져와 보겠습니다.
위 그림에서 화살표 하나마다 각각의 가중치가 주어집니다.
입력층에 3개의 노드, 은닉층에 4개의 노드가 있었으니 두 층 사이에는 12개의 가중치가 존재하겠죠?
이 12개의 가중치가 연산되는 과정을 컴퓨터에서 잘 연산하기 위해서는 행렬의 형태로 만들어주어야 합니다.
그렇다면 각 행렬의 Shape은 어떻게 생겼을까요?
예시
- 위의 사진대로 가중치 행렬을 구해보면 앞에는 입력층 3 은닉층 4이니 (3,4)
- 은닉층 4 출력층 2이니 (2,4)
추가)
출처 : https://urclass.codestates.com/content/a963b846-43cd-43ca-85a6-29fe8370ce56?playlist=2779