딥러닝(35)
-
[밑바닥딥러닝] 8. 2층 신경망 구현, 미니배치 학습
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 이번 장에서는 지금까지 살펴본 신경망의 출력, 손실 함수, 그레디언트, 가중치 업데이트, 미니 배치 학습을 모두 이용하여 2층 신경망을 구현하고, 실제로 신경망을 학습시켜보도록 하겠다. 2층 신경망 구현 class TwoLayerNet: def __init__(self, input_size, hidden_size, output_size, weight_init_std = 0.01): ### 가중치들을 초기화 def predict(self, x): ### 입력값 x와 가중치들을 바탕으로 출력값을 반환 def loss(self, x, t): ### 입력값 x를 통해 예측값을 계산하고 ### 타깃값 t..
2021.10.01 -
[밑바닥딥러닝] 7. 경사하강법(gradient descent)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 지금까지 퍼셉트론의 개념을 통해 입력값(input)과 가중치(weigth) 그리고 편향(bias)를 통해 결과를 도출하고, 손실함수를 통해 예측값과 실제(타깃)값과의 괴리를 측청하여 이를 가중치 업데이트에 반영하는 방법을 알아보았다. 이번에는 경사 하강법이라는 개념을 통해 실제로 가중치를 업데이트하는 방법을 알아보도록 하자. 경사하강법(gradient descent) 산에 조난자가 있다고 가정하자. 이 조난자는 눈이 다치는 바람에 앞을 볼 수 없고, 다시 베이스 캠프로 돌아가기 위해 경사를 더듬에서 원래 출발점이 있던 곳으로 내리막길을 따라 내려가야한다. 내려가다보면 내리막을 멈추고 어느 순간 ..
2021.10.01 -
[밑바닥딥러닝] 6. 수치 미분, 편미분
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 기계학습에서 학습이 이루어지는 근간이자 수단이 바로 '미분'이다. 이 미분이란 무엇이고, 기계 학습에서 어떻게 이용될까? 수치 미분 / 편미분 In mathematics, the derivative of a function of a real variable measures the sensitivity to change of the function value (output value) with respect to a change in its argument (input value) 출처 : https://en.wikipedia.org/wiki/Derivative 위키디피아에 따르면 미분은 어떠한 ..
2021.10.01 -
[밑바닥딥러닝] 5. 신경망 학습 - 손실 함수, 미니 배치 학습
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 기계학습에서 '학습'이란 훈련 데이터(입력, 타깃)를 통해 가중치 매개변수의 값을 가장 최적의 방향으로 조정하는 과정을 말한다. 이번 장에서는 신경망에서 학습이 이루어지는 원리를 실습을 통해 알아보도록 하자. 훈련 데이터 기계학습에서는 예측 모델을 학습시키기 위해서 훈련 데이터(training data)를 사용한다. 훈련 데이터란 오로지 학습을 위해서 전체 데이터에서 일부분의 데이터를 따로 떼어놓은 데이터들이다. (이후에 훈련 데이터도 하이퍼 파라미터의 조정을 위해서 또 나눠지긴 하지만 일단은 위의 수준까지만 알아두자.) 훈련 데이터로 훈련시킨 예측 모델은 시험 데이터(test data)를 통해..
2021.09.30 -
[밑바닥딥러닝] 4. 신경망 구현 - 손글씨 인식
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 이번 장에서는 손글씨 이미지를 인식하는 신경망을 구현하여 신경망의 순전파(forward propagation)가 실제로 어떻게 이루어지는지 알아보도록 하자. 출처:https://ko.wikipedia.org/wiki/MNIST_%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4 MNIST 데이터셋은 훈련용 이미지 60000개, 테스트용 이미지 10000개로 이루어진 손글씨 이미지 집합이다. 이미지 하나당 (28, 28)의 크기이며 각 픽셀은 0 ~ 255까지의 값을 취한다. import os import pickle from dataset.mnist..
2021.09.12 -
[밑바닥딥러닝] 1.퍼셉트론
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 퍼셉트론 퍼셉트론(Perceptron)의 정의는 다음과 같다. In machine learning, the perceptron is an algorithm for supervised learning of binary classifiers. A binary classifier is a function which can decide whether or not an input, represented by a vector of numbers, belongs to some specific class. It is a type of linear classifier, i.e. a classification a..
2021.09.10