1부 딥러닝의 기초
2장 딥러닝이란 무엇인가?
2.3 신경망의 톱니바퀴: 텐서 연산
심층 신경망이 학습한 모든 변환을 수치 데이터 텐서에 적용하는 몇 종류의 텐서 연산으로 나타낼 수 있음. (텐서 덧셈, 텐서 곱셈..)
원소별 연산
relu함수와 덧셈
텐서에 있는 각 원소에 독립적으로 적용
고도의 병렬 구현이 가능한 연산
relu(x) = max(x,0)
입력이 0보다 크면 입력을 그대로 반환
입력이 0보다 작으면 0을 반환
브로드캐스팅
크기가 다른 두 텐서가 연산될 때 모호하지 않고 실행이 가능하면 작은 텐서가 큰 텐서에 크기를 맞춤.
[브로드캐스팅 과정]
1. 큰 텐서의 ndim에 맞도록 작은 텐서에 축이 추가
2. 작은 텐서가 새 축을 따라서 큰 텐서의 크기에 맞도록 반복
[예]
x -> (32,10) / y -> (10,)
1. y의 비어 있는 첫 번째 축을 추가하여 크기를 (1,10)으로 만듦.
2. y를 이 축에 32번 반복하여 텐서 y의 크기를 (32,10)으로 만듦.
텐서 점곱 (텐서 곱셈)
원소별 연산과 반대로 입력 텐서의 원소들을 결합시킴. (우리가 알고 있는 행렬의 곱과 같음.)
넘파이, 케라스, 씨아노, 텐서플로에서 원소별 곱셈은 * 연산자 사용
넘파이, 케라스에서 점곱 연산은 dot연산자 사용
텐서 크기 변환
특정 크기에 맞게 열과 행을 재배열
크기가 변환인 텐서는 원래 텐서와 원소 개수가 동일
신경망 | 전체적으로 텐서 연산의 연결로 구성 |
모든 텐서 연산 | 입력 데이터의 기하학적 변환 |
'MLOps 프로젝트 > 도서 '케라스 창시자에게 배우는 딥러닝'' 카테고리의 다른 글
1부 3.1 신경망의 구조 (0) | 2021.08.28 |
---|---|
1부 2.4 신경망의 엔진: 그래디언트 기반 최적화 (0) | 2021.08.23 |
1부 2.2 신경망을 위한 데이터 표현 (0) | 2021.08.23 |
1부 2.1 신경망과의 첫 만남 (0) | 2021.08.23 |
1부 1.3 왜 딥러닝일까? 왜 지금일까? (0) | 2021.08.23 |