[머신러닝] #8 딥러닝 [머신러닝] #8 딥러닝 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ -딥러닝은 층을 깊게 한 심층 신경망이다.심층 신경망은 지금까지 설명한 신경망을 바탕으로 뒷단에 층을 추가하기만 하면 만들 수 있지만, 커다란 문제가 몇 개 있다. 8.1. 더 깊게 8.1.1. 더 깊은 신경망으로 -심층 신경망을 학습시키는 데는 시간이 오래 걸린다.그러나 정확도는 올라간다. 8.1.2. 정확도를 더 높이려면 -MNIST 데이터셋에 대해서는 층을 아주 깊게 하지 않고도 최고 수준의 결과나 나온다.이는 손글씨 숫자라는 문제가 비교적 단순해서 신경망의 표현력을 극한까지 높일 필요가 없기 때문이라고 생각된다.그래서 층을 깊.. 2018. 7. 10. [머신러닝] #7 합성곱 신경망 (CNN) [머신러닝] #7 합성곱 신경망 (CNN) "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ -합성곱 신경망(Convolutional Neutral Network, CNN) 은 이미지 인식과 음성 인식 등 다양한 곳에 사용된다.특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 CNN 을 기초로 한다. 7.1. 전체 구조 -CNN 도 기존 신경망과 같이 레고 블록처럼 계층을 조합하여 만들 수 있다.이곳에 새로운 개념이 등장한다. 합성곱 계층(convolutional layer)과 폴링 계층(pooling layer)이다. -지금까지 본 신경망은 인접하는 계층의 모든 뉴런과 결합되어 있었다.이를 완전 연결(ful.. 2018. 7. 9. [머신러닝] #6 학습 관련 기술들 [머신러닝] #6 학습 관련 기술들 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ 6.1. 매개변수 갱신 -신경망 학습의 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것이다.이는 곧 매개변수의 최적값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화(optimization)라 한다.안타깝게도 신경망 최적화를 굉장히 어렵다. 매개변수 공간은 매우 넓고 복잡해서 최적의 솔루션은 쉽게 못 찾기 때문이다. 우리는 지금까지 최적의 매개변수를 찾는 단서로 매개변수의 기울기(미분)을 시용했다.매개변수의 기울기를 구해, 기울어진 방향으로 매개변수 값을 갱신하는 일을 몇 번 반복해서 점점 최적의 값에 다가갔다.이것이.. 2018. 7. 8. [머신러닝] #5 오차역전파법 ( Back propagation ) [머신러닝] #5 오차역전파법 ( Back propagation ) "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ -수치미분은 단순하고 구현하기도 쉽지만 계산 시간이 오래 걸린다는게 단점이다.오차역전파법(backpropagation)은 어렵지만 시간이 짧게 걸린다. -오차역전파법을 제대로 이해하는 방법은 두 가지가 있다. 하나는 수식을 통한 것이고, 다른 하나는 계산 그래프를 통한 것이다.수식을 통한 것이 일반적인 방법으로, 특히 기계학습을 다루는 책 대부분은 수식을 중심으로 이야기를 전개한다.하지만 수식을 중심으로만 생각하다 보면 본질을 놓치거나, 수많은 수식에 당황할 수 있다. 5.1. 계산 그래프 -.. 2018. 7. 7. [머신러닝] #4 신경망 학습 #2 [머신러닝] #4 신경망 학습 #2 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ 4.4. 기울기 -x0 와 x1 의 (두 변수의) 편미분을 동시에 계산하는, 모든 변수의 편미분을 벡터로 정리한 것을 기울기(gradient)라고 한다.def numerical_gradient(f, x): h = 1e-4 grad = np.zeros_like(x) # x 와 형상이 같은 배열을 생성 for idx in range(x.size): tmp_val = x[idx] # f(x+h) 계산 x[idx] = tmp_val + h fxh1 = f(x) .. 2018. 7. 6. [머신러닝] #4 신경망 학습 #1 [머신러닝] #4 신경망 학습 #1 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ -학습은 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다.신경망이 학습할 수 있도록 해주는 지표인 손실함수가 있다.이 손실 함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표이다. 4.1. 데이터에서 학습한다! -신경망의 특징은 데이터를 보고 학습을 할 수 있다는 것이다.데이터에서 학습한다는 것은 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다. 4.1.1. 데이터 주도 학습 -기계학습은 데이터가 생명이다. 데이터에서 답을 찾고 데이터에서 패턴을 발견하고 데이.. 2018. 7. 5. [머신러닝] #3 신경망 #2 [머신러닝] #3 신경망 #2 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다. 자세한 내용은 책을 구매해서 보세요~ 3.5. 출력층 설계하기 -신경망은 분류와 회귀 모두에 이용할 수 있다.어떤 문제냐에 따라 출력층에서 사용하는 활성화 함수가 달라진다.일반적으로 회귀에는 항등 함수를, 분류에는 소프트맥스 함수를 사용한다. -기계학습 문제는 분류(classification)과 회귀(regression)로 나뉜다.분류는 데이터가 어느 클래스(class)에 속하냐는 문제이다.사진 속 인물의 성별을 분류하는 문제가 여기에 속한다.한편 회귀는 입력 데이터에서 (연속적인) 수치를 예측하는 문제이다.사진 속 인물의 몸무게(57.4kg?)를 예측하는 문제가 회.. 2018. 7. 4. [머신러닝] #3 신경망 #1 [머신러닝] #3 신경망 #1 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ -앞 장에서 배운 퍼셉트론은 좋은 소식과 나쁜 소식이 있다.좋은 소식은 퍼셉트론으로 복잡한 함수를 표현할 수 있다는 것이고,나쁜 소식은 가중치 설정은 여전히 사람이 수동으로 한다는 것. 신경망은 이 나쁜 소식을 해결해준다.가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 신경망의 중요한 성질이다. 3.1. 퍼셉트론에서 신경망으로 3.1.1. 신경망의 예. -가장 왼쪽 줄은 입력층,맨 오른쪽 줄을 출력층,중간 층을 은닉층이라고 한다. 은닉층의 뉴런은 입력층이나 출력층과 달리 사람 눈에는 보이지 않는다.이 책에서는 입력층.. 2018. 7. 3. [머신러닝] #2 퍼셉트론 [머신러닝] #2 퍼셉트론 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ -퍼셉트론(perceptron) 은 프랑크 로젠블라트라는 사람이 1957년에 고안한 알고리즘이다.고대 화석 같은 녀석인데 퍼셉트론이 신경망(딥러닝)의 기원이 되는 알고리즘이다.그래서 알아두어야 한다. 2.1. 퍼셉트론이란? -퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다.여기서 신호란 전류나 강물처럼 흐름이 있는 것을 상상하면 좋다.실제 전류와 달리 퍼셉트론 신호는 0, 1 값만 갖는다. - x1, x2 는 입력 신호y 는 출력 신호w1, w2 는 가중치를 말한다. (w 는 weight 의 머릿글자) 그림의 원을 뉴.. 2018. 7. 2. 반응형 이전 1 2 다음