본문 바로가기

딥러닝

[딥러닝] 딥러닝 기본 공부

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