Python/Deep Learning

[Python DL]인공신경망(ANN, Artificial Neural Network)_MLPClassifier, MLPRegressor

sohyunkimmm 2023. 1. 24. 18:00
728x90

* 인공지능 vs. 머신러닝 vs. 딥러닝

인공지능을 구현하기 위한 방법의 하나로 머신러닝이 있고, 딥러닝은 이 머신러닝 방법론 중 하나의 종류이다

- 인공지능(Artificial Intelligence): 말 그대로 인공적으로, 컴퓨터를 통해 지적 능력을 구현하는, 좀 더 개념적인 단어를 의미

- 머신러닝(Machine Learning): 컴퓨터가 '학습'을 통해 스스로 그 성능을 향상 시키는 방법론

- 딥러닝(Deep Learning): 인간의 뉴런을 모티브로 한 '인공신경망' 방식을 바탕으로 컴퓨터를 학습시키는 것

 

 

* 인공 신경망(Artificial Neural Network)

- 인간의 뇌를 기반으로 한 추론 모델

- 신경망은 가중치를 반복적으로 조정하며 학습

- 뉴런은 링크로 연결되어 있고, 각 링크에는 수치적인 가중치가 있음

- 인공 신경망은 신경망의 가중치를 초기화하고 훈련 데이터를 통해 가중치를 갱신하여 신경망의 구조를 선택하고, 활용할 학습 알고리즘을 결정한 후 신경망을 훈련시킴

일반적인 뉴런의 구조

 

- 인공신경망: 여러 뉴런이 서로 연결되어 있는 구조의 네트워크. 각 층들은 '노드'들로 구성

- 입력층(input layer)을 통해 학습하고자 하는 데이터를 입력 받음

- 입력된 데이터들은 여러 단계의 은닉층(hidden layer)을 지나면서 처리가 이루어져 출력층(output layer)을 통해 최종 결과가 출력됨

인공신경망 구조

- ANN의 문제점

1) 학습과정에서 파라미터의 최적값을 찾기 어렵다

2) Overfitting(과적합)에 따른 문제

3) 학습시간이 느리다

 

 

* 인공신경망 코딩하기

1. 분류 예측 (MLPClassifier)

from sklearn.neural_network import MLPClassifier

nn_model = MLPClassifier(random_state = 0, alpha = 0.001, hidden_layer_sizes = [50])

변수선택, 데이터 분할, 데이터 전처리(StandardSclaer_연속형, OneHotEncoder_범주형), 오버샘플링(SMOTE)
MLPClassifier모형을 통한 예측
accuracy = 0.889, f1-score = 0.89

 

 

2. 회귀 예측 (MLPRegressor)

from sklearn.neural_network import MLPRegressor

nn_reg_model = MLPRegressor(random_state = 0, alpha = 1, max_iter = 1000, hidden_layer_sizes = [50, 50])

 

참고) MLPRegressor의 하이퍼파라미터를 자세히 알고싶다면? 

 

https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html

변수선택, 데이터 분할, 데이터 전처리(StandardScaler_연속형, OneHotEncoder_범주형)
MLPRegressor모형을 통한 예측
RMSE값이 이상하다..?

 

 

 

<사진, 자료 출처>

https://ko.wikipedia.org/wiki/%EC%8B%A0%EA%B2%BD_%EC%84%B8%ED%8F%AC

https://on-ai.tistory.com/3

http://tcpschool.com/deep2018/deep2018_deeplearning_intro

https://ebbnflow.tistory.com/119

728x90
반응형