목록신경망 (28)
Broccoli's House
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 지도 학습 알고리즘 : 정리 요약 및 정리 - 최근접 이웃(k-NN) : 데이터 포인트에서 가장 가까운 훈련 데이터 포인트, 최근접 이웃을 찾는 알고리즘. 작은 데이터 세트일 경우에 기본모델로서 좋고 이해하기 쉽다. - 선형 모델 : 선형적인 직선이나 평면, 초평면 등을 이용하여 출력을 찾는 알고리즘. 첫 번째로 시도하기 좋으며, 대용량 데이터세트와 고차원 데이터 세트에 가능하다. - 나이브 베이즈 : 데이터의 특성을 독립적이라 가정하여 각 상황의 확률을 계산하여 결과를 출력한다. 분류 문제에만 적용할 수 있다. 대용량 데이터 세트와 고차원 데이터에 사용 가능하다. 선형 모델보다 훨씬 빠르나 정확도는 떨어진다. - 결정 트리 : 데이터를 이진 분..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. MNIST 손글씨 숫자 인식 MNIST 데이터 세트 - MNIST(Modified National Institute of Standards and Technology database) : MNIST는 기계학습 분야에서 매우 유명한 데이트 세트로, 손으로 쓴 숫자들로 이루어진 대형 데이터베이스이다. 일반적으로 기계 학습 분야의 훈련과 테스트에 널리 사용된다. 60,000개의 훈련 이미지와 10,000개의 테스트 이미지를 포함하고 있다. - 데이터 세트 불러오기import numpy as np import pickle import sys,os sys.path.append(os.pardir) from dataset.mnist import load_mn..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 출력층 설계 항등 함수 - 신경망은 회귀와 분류 모두에 이용될 수 있으나, 다만 문제의 유형에 따라 출력층에 사용되는 활성화 함수에서 차이를 보인다. 일반적으로 회귀에는 항등 함수, 분류에는 소프트맥스(Softmax) 함수를 사용한다. 특히나 다중 분류에서 소프트맥스 함수를 사용한다. - 항등 함수(Identity Function) : 항등 함수는 입력을 그대로 출력하는 함수이다. 입력과 출력이 항상 같기 때문에, 출력층에 항등 함수를 사용하면 입력 신호가 그대로 출력 신호가 된다. 회귀 문제의 특성상 데이터 간의 연속적인 관계가 있어야하기 때문에, 값을 0과 1에 가깝게 분류하는 시그모이드, 계단 함수 등의 활성화 함수가 필요가 없는 것이다. ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 3층 신경망 구현 신호 전달 구현 - 입력층(Input Layer, 0층)은 2개, 첫 번째 은닉층(First Hidden Layer, 1층)은 3개, 두 번째 은닉층(Second Hidden Layer, 2층)은 2개, 출력층(Output Layer, 3층)은 2개의 노드로 구성된 3층 신경망이다. (1) 입력층에서 1층으로의 신호 전달 - 가중치 계산X = np.array([1.0, 0.5]) # 입력값 W1 = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]]) # 가중치(weight) B1 = np.array([0.1, 0.2, 0.3]) # 편향(bias) A1 = np.dot(X, W1) + B1 # X와 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 활성화 함수 활성화 함수 - 활성화 함수(Activation Function) : 퍼셉트론 알고리즘에서, 입력 신호에 가중치를 곱한 값을 임계치와 비교하여 그보다 크면 1을, 작으면 0을 반환한다. 이 때 임계치와 비교하여 0또는 1을 출력하는 함수를 활성화 함수라한다. 즉, 활성화 함수란 입력 신호의 총합을 출력 신호로 변환하는 함수이다. 입력 신호의 총합이 활성화를 일으키는지 정하는 역할을 한다. 다음은 입력 신호의 총합 a를 출력 신호 y로 변환하는 활성화 함수 h이다. 계단 함수 - 계단 함수(Step Function) : 임계치를 경계로 출력이 바뀌는 함수이다. 즉, 0을 경계로 출력이 0에서 1, 또는 1에서 0으로 바뀌는 함수이다. ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 신경망(Neural Network) 신경망 - 인공 신경망(Artificial Neural Network) : 머신러닝에서 생물의 중추 신경계, 그 중에서도 뇌에서 영감을 얻은 통계학적 학습 알고리즘이다. 인공 뉴런(노드)이 서로 연결되어 네트워크를 형성하고, 각각의 뉴런이 학습을 통해 가중치를 변화시켜 문제 해결 능력을 가지는 모델 전반을 가리킨다. - 퍼셉트론 알고리즘의 경우, 복잡한 함수를 표현할 수는 있지만 가중치를 설정하는 작업은 사람이 수동으로 해야한다. 그러나 신경망은 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력을 가지고 있다. - 신경망은 입력 신호가 들어가는 입력 노드가 층을 이루고 있는 입력층(Input L..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 퍼셉트론 : XOR 게이트 XOR 게이트 - XOR 게이트(Exclusive-OR) : 배타적 논리합. 입력이 같을 때는 0을, 입력이 다르면 1을 출력한다. x1x2y 000 101 011 110 - 퍼셉트론은 직선으로 나뉘는 두 영역을 만든다. 직선으로 나뉜 한쪽 영역은 1을 출력하고, 다른 한쪽은 0을 출력한다. 그러나 XOR 게이트의 경우 직선 하나로 영역을 나누는 것은 불가능하다. 따라서 선형 영역으로는 불가능하고, 곡선으로 나누는 비선형 영역에서는 가능하다. 즉, 단층 퍼셉트론으로는 비선형 영역을 분리할 수 없는 것이다. 다층 퍼셉트론 - 다층 퍼셉트론(Multi-Layer Perceptron) : 여러 개의 퍼셉트론을 층으로 쌓아 만..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 퍼셉트론 알고리즘 퍼셉트론 - 퍼셉트론(Perceptron) : 신경망(딥러닝)의 기원이 되는 알고리즘이다. 다수의 신호를 입력으로 받아 각 노드의 가중치(w)와 입력 값을 곱한 것을 모두 더한 값이 활성 함수에 의해 판단된다. 그 값이 임계치보다 크면 1이 출력되고 작으면 0이 출력된다. - 퍼셉트론은 복수의 입력 신호 각각에 고유한 가중치를 부여한다. 가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용한다. 그러므로, 가중치가 크다면 해당 신호가 그만큼 더 중요하다는 것을 뜻한다. 가중치와 편향 도입 - 임계치(θ)를 0으로 두기 위하여 편향(bias, b)을 도입한다. 즉, 퍼셉트론은 입력 신호에 가중치를 곱한 값과 편향을 합하여..