벡터 : 크기와 방향을 가진 양이다. 1차원 배열로 표현이 가능, 행벡터, 열벡터로 나열하는 방법이 구분된다.
행렬 : 숫자가 2차원 형태(사각형 형상)로 늘어선 것, 행과 열로 구분한다.
이후 행렬 원소별 연산, 브로드캐스트 등 1권에서 설명한 numpy 기능들을 알려준다.
벡터의 내적(곱셈), 행렬의 곱의 예시도 보여주고 구현도 한다.
행렬을 곱할 때는 대응하는 차원의 원소 수가 같아야 한다. 이를 행렬의 '형상 확인'이라 한다.
신경망(완전연결계층)의 전체 구조를 설명으로 시작한다. -> 입력, 출력층, 은닉층, 가중치, 편향 등
층을 지날 때에 계산식을 알려주고 구현해본다. (p.31)
완전연결계층의 의한 변환은 선형 변환이라는 것을 일러주고, 여기에 비선형 효과를 부여하는 것이 활성화 함수라고 말한다. ex) 'the' sigmoid function
시그모이드 함수 -> -> 그래프는 늘어진 's' 모양이다.
시그모이드 함수를 거쳐 출력층에 값이 도달해 클래스별로 '분류' 되는 과정을 확인해볼 수 있다. (확률로 얻으려면 소프트맥스 함수 사용!)
위에 과정을 순전파(forward propagation)로, 한 클래스에 묶어 구현한다. (p.36)
(sigmoid, affine 클래스 구현 후, TwoLayerNet 클래스로 신경망 구현)
정답 레이블은 원핫 벡터로 표기된다.
책에서는 CEE와 소프트맥스 함수를 묶어서 클래스를 구현한다. (Softmax with Loss)
미분과 벡터, 행렬의 기울기에 대한 간략한 설명을 해준다. (p.43)
연쇄 법칙에 대해 설명한다. (p.44)
계산 그래프로 여러 노드(계층)들의 순전파와 역전파(덧셈 노드, 곱셈 노드, 분기 노드, Repeat 노드, Sum 노드, MatMul 노드)의 구조와 과정을 설명한다. (노드 역전파에 대한 수식을 이해하고 넘어갈 필요가 있다!)
여러 노드들을 구현한 후 Sigmoid, Affine, Softmax with Loss 계층을 구현한다.
스파이럴 데이터셋으로 2차원으로 데이터를 시각화하는 방법을 알아보고 구현한다. -> 결과로 결정 경계로 나눠진 그래프를 시각화 할 수 있다.
비트 정밀도를 알아보고 조작하는 방법을 구현한다.
쿠파이 라이브러리를 통해 GPU 병렬 연산을 해주는 방법을 알려준다. (아주 간단하게만)
1권의 내용 대부분을 2권의 1장에 요약해서 간략하게 보여준다. CNN을 잘 숙지하고 있고, 딥러닝의 기초 이론들에 숙달 돼 있다면 2권으로 시작하는 것도 나쁘지 않아 보인다.