-
텐서 연산
keras.layers.Dense(512, activation='relu') -> output = relu(dot(W, input) + b)
원소별 연산
- 텐서에 있는 각 원소에 독립적으로 적용 됨
- 위의 예시에서 relu함수와 덧셈이 이에 해당함
- 고도의 병렬 구현이 가능한 연산
브로드캐스팅
- 크기가 다른 두 텐서가 더해질 때 작은 텐서가 큰 텐서의 크기에 맞추는 것
- 큰 텐서의 ndim에 맞도록 작은 텐서에 축이 추가됨 -> 작은 텐서가 새 축을 따라 큰 텐서의 크기에 맞도록 반복됨
- ex) X의 크기가 (32, 10) 이고 y의 크기가 (10,) 일
y에 비어있는 축 추가하여 (1, 10) 으로 만든 후, y를 이 축에 32번 반복하여 (32, 10) 으로 만듦.
텐서 점곱
- 원소별 연산과 반대로 입력 텐서의 원소들을 결합시킴
- 텐서 곱셈이라고도 함 ( 원소별 곱셈과 다름! )
- 원소별 곱셈에서는 * 연산자 사용. but, 점곱 연산에서는 dot 연산자 사용
- 원소 개수가 같은 벡터끼리, 또는 행렬 x와 벡터 y사이에서 점곱 가능
- 단, 두 텐서 중 하나라도 ndim이 1보다 크면 dot연산에 교환 법칙이 성립 되지 않음 = dot(x,y)와 dot(y,x) 가 다름
즉, 벡터끼리 연산했을 때에만 교환 법칙 성립!
텐서 크기 변환
- 특정 크기에 맞게 열과 행을 재배열
- 변환된 텐서는 원래의 텐서와 원소 개수가 동일함
- ex) train_images.reshape((60000, 28*28))
- 전치를 가장 많이 사용함 ex) np.transpose(x) -> x의 행과 열이 바뀜
딥러닝의 기하학적 해석
- 신경망은 텐서 연산들로 구성되어 있음
- 텐서 연산들은 입력 데이터의 기하학적 변환
- 따라서, 딥러닝을 이용하여 각 층의 데이터들을 분해 -> 이런 층들이 깊게 쌓여 복잡한 문제 해결!
<케라스 창시자에게 배우는 딥러닝>(길벗, 2018)을 학습하고 개인 학습용으로 정리한 내용입니다.
'인공지능 > 케라스 창시자에게 배우는 딥러닝' 카테고리의 다른 글
[3. 신경망 시작하기] 3-6. 주택 가격 예측 - 회귀 문제 (0) 2021.01.09 [3. 신경망 시작하기] 3-5. 뉴스 기사 분류 - 다중 분류 문제 (0) 2021.01.09 [3. 신경망 시작하기] 3-4. 영화 리뷰 분류 - 이진 분류 예제 (0) 2021.01.09 [2. 신경망의 수학적 구성 요소] 2-4. 그래디언트 기반 최적화 (0) 2021.01.06 [2. 신경망의 수학적 구성 요소] 2-2. 신경망을 위한 데이터 표현 (0) 2021.01.06 댓글