본문 바로가기

밑바닥 딥러닝/밑바닥부터 시작하는 딥러닝18

8장 8.1 더 깊게 8.2 딥러닝의 초기 역사 8.3 더 빠르게(딥러닝 고속화) 8.4 딥러닝의 활용 8.5 딥러닝의 미래 8.6 정리 8.1 더 깊게 1) 더 깊은 신경망으로 신경망 특징 층이 깊어질수록 채널 수가 늘어난다. 3*3의 작은 필터를 사용한 합성곱 계층(Conv) 활성화 함수는 ReLU 풀링 계층 추가해 중간 데이터의 공간 크기를 줄여나감 완전연결 계층 뒤에 드롭 아웃 계층 사용 - 완전 연결 신경망이란, 인접하는 계층의 모든 뉴런과 결합되어 있는 신경망을 말한다. 입력 데이터와 가중치가 1대 1로 대응하는 것을 완전 연결(Fully-Connected)이라고 하며, 행렬의 내적(Affine)으로 표현된다. 가중치 매개변수 갱신(Adam을 사용해 최적화) 가중치 초기값: 'He' 초기값 (ReL.. 2023. 6. 29.
7장 7.1 전체구조 7.2 합성곱 계층 7.3 풀링 계층 7.4 합성곱/풀링 계층 구현하기 7.5 CNN 구현하기 7.6 CNN 시각화하기 7.7 대표적인 CNN 7.8 정리 7.1 전체구조 이전의 신경망과 같이 계층을 조합하여 만들 수 있다. CNN에서는 새로운 합성곱 계층과 풀링 계층이 추가된다. 완전연결: 인접하는 계층의 모든 뉴런과 결합된 신경망 (완전 연결된 계층을 Affine 계층) 7.2 합성곱 계층 1) 완전연결 계층의 문제점 완전연결 계층에 입력할 때는 3차원 데이터를 평평한 1차원 데이터로 평탄화 = 데이터의 형상 무시 완전연결 계층은 형상을 무시하고 모든 이력 데이터를 동등한 뉴런(같은 차원의 뉴런)으로 취급해 형상에 담긴 정보를 살릴 수 없다. 하지만 합성곱 계층은 형상을 유지 (이미지.. 2023. 6. 29.
6장 6.1 매개변수 갱신 6.2 가중치의 초기값 6.3 배치정규화 6.4 바른학습을 위해 6.5 정리 6.1 매개변수 갱신 신경망의 학습 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것 = 매개변수의 최적값을 찾는 문제 = 최적화 매개변수 공간은 매우 넓고 복잡해 최적화는 어려운 문제이다. 우리는 지금까지 최적의 매개변수 값을 찾는 단서로 매개변수의 기울기(미분)를 이용했다. 매개변수의 기울기를 구해 기울어진 방향으로 매개변수 값을 갱신하는 일을 진행해 최적의 값으로 다가간다. 이것이 확률적 경사 하강법(SGD)이다. SGD외의 다른 최적화 기법을 소개한다. 1) 확률적 경사 하강법 (SGD) W : 갱신할 가중치 매개변수 aL/aW은 W에 대한 손실함수의 기울기 η : 학습률 class SG.. 2023. 6. 22.
5장 5장 5.1 계산 그래프 5.2 국소적 계산 5.3 왜 계산 그래프로 푸는가? 5.4 연쇄법칙 5.5 역전파 5.6 단순한 계층 구현하기 5.7 활성화 함수 계층 구현하기 5.8 Affine/Softmax 계층 구현하기 5.9 오차역전파법 구현하기 5.10 정리 오차역전파법 : 인공 신경망에서 가중치와 편향을 업데이트하는데 사용되는 학습 알고리즘 오차역전파법을 제대로 이해하는 두 가지 방법 - 수식을 통한 것 - 계산 그래프를 통한 것 5.1 계산 그래프 계산 그래프는 계산 과정을 그래프로 나타낸 것. 그래프는 복수의 노드와 에지로 표현된다. 예시 문제 2 : 현빈 군은 슈퍼에서 사과를 2개, 귤을 3개 샀다. 사과는 1개 100원, 귤은 1개에 150원, 소비세 10%일때 지불금액은? 계산 그래프를 이.. 2023. 6. 2.
4장 4.1 훈련데이터와 시험데이터 범용 능력을 제대로 평가하기 위해 훈련 데이터와 시험 데이터의 분리가 필요 데이터셋 하나로만 매개변수의 학습 및 평가를 수행하면 올바른 평가가 될 수 없음 * 오버피팅 문제 : 한 데이터셋에만 지나치게 최적화된 상태 - 훈련 데이터만 사용하여 학습해 최적의 매개변수 찾음 - 그 후 시험 데이터를 사용하여 훈련한 모델의 실력을 평가함 4.2 손실함수 - 신경망은 하나의 지표를 기준으로 최적의 매개변수 값을 탐색함 : 신경망 학습에서 사용하는 지표를 손실 함수라고 한다. 1) 오차제곱합 - 가장 많이 쓰이는 손실함수 y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0] t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0].. 2023. 6. 1.
손글씨 숫자 인식 학습된 매개변수를 사용하여 학습 과정은 생략하고, 추론과정만 구현 (추론과정=신경망의 순전파) MNIST 데이터셋 MNIST 데이터셋을 이용하여 모델을 학습하고, 학습한 모델로 시험 이미지들을 얼마나 정확하게 분류하는지 평가한다. 이를 준비하는 코드는 다음과 같다. # coding: utf-8 import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 import numpy as np from mnist import load_mnist # MNIST데이터를 (훈련이미지,훈련레이블), (시험이미지, 시험레이블)로 반환 from PIL import Image def img_show(img): #MNIST이미지 화면으로 불러옴 pil_img =.. 2023. 5. 13.