[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.]
배치 경사 하강법
- 확률적 경사 하강법보다 많은 양을 가지고 손실함수의 최솟값을 찾기 때문에 찾는 과정이 더욱 안정적이다.
- 대신 가중치를 1번 업데이터할 때사용되는 데이터 개수가 많으므로 계산 비용이 많이든다.
점 곱(dot product, 스칼라 곱) : 두 벡터를 곱하여 합을 구하는 계산.
다층 신경망
- 뉴런이 2개 이상 있는 신경망으로 은닉층을 통과한 값들은 다시 출력층으로 모임.
- 활성화 함수는 층마다 다를 수 있지만 한 층에서는 같아야 한다.
- 모든 뉴런이 연결되어 있으면 완전 연결 신경망이라고 한다. (add. 순환 신경망, 합성곱 신경망)
Sklearn의 MLP모델 사용하여 구현하기
hidden_layer_sizes : 은닉층의 수와 뉴런의 개수를 튜플로 전달.
activation : 활성화 함수를 매개변수로 지정. 기본 값은 ReLU이다.
solver : 경사 하강법 알고리즘 종류를 지정 -> SGD는 확률적 경사 하강법
alpha : L2규제의 규제의 양 기본값은 0.0001
In [1]:
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
cancer = load_breast_cancer() #유방암 환자 데이터
x = cancer.data
y = cancer.target
x_train_all, x_test, y_train_all, y_test = train_test_split(x,y, stratify=y, test_size = 0.2, random_state=42)
x_train, x_val, y_train, y_val = train_test_split(x_train_all, y_train_all, stratify=y_train_all, test_size=0.2, random_state=42)
scaler = StandardScaler() #데이터 전처리
scaler.fit(x_train)
x_train_scaled = scaler.transform(x_train)
x_val_scaled = scaler.transform(x_val)
In [2]:
from sklearn.neural_network import MLPClassifier
mlp = MLPClassifier(hidden_layer_sizes=(10,), activation='logistic',solver='sgd',alpha=0.01, batch_size=32,
learning_rate_init=0.1, max_iter=1000)
In [3]:
mlp.fit(x_train_scaled,y_train)
mlp.score(x_val_scaled,y_val)
Out[3]:
https://github.com/chlgkrws/DeepLearningOfDoIt/blob/master/DeepLearning%20of%20DoIT/Mini_batch_2020_5_7.ipynb <- 직접 구현한 부분 보기
반응형
'빅데이터 | 머신러닝 | 딥러닝 > 딥러닝' 카테고리의 다른 글
[딥러닝 기초] 다층 신경망을 통해 의류분류기 만들어보기(2) (using keras) (1) | 2020.05.14 |
---|---|
[딥러닝 기초] 다층 신경망을 통해 의류분류기 만들어보기 (4) | 2020.05.12 |
[딥러닝 기초] k-fold 교차 검증(cross validation) (0) | 2020.05.02 |
[딥러닝 기초] Neural Network (L1, L2 규제) (0) | 2020.04.25 |
[딥러닝 기초] Neural Network (훈련 노하우) (0) | 2020.04.24 |