Study/MachineLearning 16

[Do it!] 6. 이미지 분류하기 - 합성곱 신경망

이 포스트는 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 pp.234~277을 참고하였습니다. 기본적인 합성곱(convolution)을 하는 방법은 알고있다는 전제 하에 진행하겠습니다. 교차 상관(cross validation) 합성곱 신경망은 합성곱을 사용하는 대신, 교차 상관을 사용합니다. 교차 상관은 합성곱과 매우 비슷합니다. 계산 과정은 합성곱과 똑같으며, 미끄러지는 배열을 뒤집지 않고 그대로 사용합니다. 즉 아래와 같은 배열이 있을 때, 왼쪽은 합성곱, 오른쪽은 교차 상관입니다. 교차 상관을 사용하는 이유는, 훈련하기 전에 가중치 배열을 무작위로 초기화했기 때문입니다. 위에서 사용한 '미끄러지는 배열'이 합성곱 신경망에서의 가중치에 해당합니다. 가중치 배열은 무작위로 초기화됐기 때문에 뒤집..

[Do it!] 5. 다중 분류

이 포스트는 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 pp.197~231를 참고하였습니다. 여러 개의 이미지를 분류하는 다층 신경망 만들기 ​이진 분류에서는 다음과 같은 다층 신경망을 사용했습니다. 0.5를 기준으로 해서 출력층의 활성화 값이 이보다 크면 양성, 작으면 음성으로 분류했습니다. 다중 분류를 위한 신경망을 구하는 방법은 위의 구조에서 출력층의 개수만 추가하면 됩니다. 이진 분류와 다중 분류를 위한 신경망의 구조를 비교해보면, 출력층의 개수만 다릅니다. 이진 분류는 양성 클래스에 대한 확률 $\hat{y}$ 하나만 출력하지만, 다중 분류는 각 클래스에 대한 확률을 출력합니다. 예를 들어 클래스가 3개라면 $\hat{y}_1, \hat{y}_2, \hat{y}_3$ 이렇게 3개의 출력이..

[Do it!] 4. 2개의 층 연결하기 - 다층 신경망

이 포스트는 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 pp.160~194를 참고하였습니다. 신경망 알고리즘 계산을 벡터화 하기 기본적인 선형대수 대한 개념은 알고있다는 하에 진행하겠습니다. SingleLayer 클래스에 배치 경사 하강법 적용하기 이전 포스트에서 사용했던 위스콘신 유방암 데이터 세트와 SingleLayer 클래스를 사용할 것입니다. import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split cancer = load_breast_cancer() x = cancer.data..

[Do it!] 3. 훈련 노하우 배우기

이 포스트는 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 pp.117~154를 참고하였습니다. 검증 세트를 나누고 전처리 과정 배우기 먼저, 이전 포스트에서 마지막에 사용했던 SGDClassifier 클래스를 사용하여 모델을 훈련하고 평가해보겠습니다. from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.linear_model import SGDClassifier cancer = load_breast_cancer() x = cancer.data y = cancer.target x_train_all, x_test, y_train_all, y_test =..

[Do it!] 2. 분류하는 뉴런 만들기 - 이진 분류

이 포스트는 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 pp.77~114를 참고하였습니다. 초기 인공지능 알고리즘과 로지스틱 회귀 퍼셉트론 퍼셉트론은 샘플을 이진 분류하기 위해 사용되는 알고리즘입니다. 퍼셉트론은 직선의 방정식을 사용하기 때문에 선형 회귀와 거의 같은 구조를 가지고 있습니다.​ 다만, 샘플을 분류하기 위해 계단 함수(step function)을 사용합니다. 그리고, 이 계단 함수를 통과한 값을 다시 가중치와 절편을 업데이트할 때 사용합니다. 이를 그림으로 나타내면 다음과 같습니다. 뉴런은 입력 신호들을 받아 다음 수식을 활용하여 출력 $z$를 만듭니다. $w_1x_1 + w_2x_2 + b = z$ 계단 함수는 $z$가 0보다 크거나 같으면 1, 작으면 -1로 분류합니다. 이 때,..

[Do it!] 1. 머신러닝 기초 - 수치 예측

이 포스트는 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 pp.46~74를 참고하였습니다. 선형 회귀란? 위키 백과에서는 다음과 같이 설명되어 있습니다. - 통계학에서, 선형 회귀(線型回歸, 영어: linear regression)는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 변수) x와의 선형 상관 관계를 모델링하는 회귀분석 기법이다. 한 개의 설명 변수에 기반한 경우에는 단순 선형 회귀, 둘 이상의 설명 변수에 기반한 경우에는 다중 선형 회귀라고 한다 말이 어려운데, 요약하자면 어떤 데이터를 대표할 수 있는 선형 그래프를 찾는 것이라고 보면 됩니다. 다음과 같은 데이터를 보겠습니다. 위와 같은 데이터가 있을 때, 위 데이터를 가장 잘 나타낼 수 있는 1차 함수는 무엇일까요? 우리는 직..