2021년 3월 14일 일요일

Day_07. 인공 신경망과 그 사례

인공 신경망
=지도 학습의 분류(Classfication)의 일종
=회귀분석이 기울기가 인공신경망에도 그대로 이어지는 개념

딥러닝/ 머신러닝 / 인공지능

 

딥러닝

XOR 문제의 해결 , CNN, LSTM, 이미지, 자연어

머신러닝

로지스틱 SVM , 수치형 DATA, 의료, ERP, 명목적 척도

인공지능

4단계의 Level , 중간 은닉층으로 인해 설명성이 떨어진다


인공신경망

개념

입력신호 x1,x2… 등의 입력신호(설명변수) 들을 중요도에 따라 가중치(w값)를 부여해 가중합을 계산하고 계산된 값에 활성함수(activation function)를 적용해 결과값 y를 출력하는 형태
Diagram

 

다층 퍼셉트론

활성함수(activation function)을 시그모이드 함수(로지스틱 함수)를 사용한 단층 퍼셉트론 신경망은 로지스틱 회귀 모형과 실질적으로 동일한 모델링이라 할 수 있음

Diagram

 



인공신경망의 장 & 단 점 비교
장점 단점
=선형으로 분류할 수 없는 복잡한 비선형 문제에 탁월한 성능
=분류 및 수치예측 문제에 모두 사용 가능
=통계적 기본 가정이 적고 유연하다
=데이터 사이즈가 작거나 불완전 데이터, 노이즈 데이터가 많은 경우에도 다른 모델에 비해 예측 성능이 우수한 경우가 많음
=모델 결과 해석이 어려워서 은닉층의 노드들이 무엇을 표현하는지, 왜 그런 결과가 나왔는지 설명이 필요할 때 사용하면 안됨 (블랙박스 모형)
=나이브 베이즈나 로지스틱 회귀 모형 같은 보다 단순한 분류 알고리즘에 비해 컴퓨팅 연상에 많은 자원이 필요
=과적합화나 과소적합이 발생하기 쉬움
=전체적 관점의 최적해(Global min/max value)가 아닌 지역(logical min/max value)가 선택될수 있음


간단 용어 설명
=학습 데이터 – 검증시 파라미터 조정에 사용되는 데이터 셋
=테스트 데이터 – 이미 학습된 모델에 적용하는 데이터
=성능평가 – 얼마나 정확한가 살펴보는 검사


약한 / 강한 인공지능 소개
약한 인공지능 강한 인공지능
인간처럼 생각하는 시스템
=마음뿐 아니라 인간과 유사한 사고와 의사결정을 내리는 시스템
=인지모델링 접근방식
합리적으로 생각하는 시스템
=계산 모델을 통해 지각, 추론, 행동 같은 정신적 능력을 갖춘 시스템
=사고의 법칙 접근 방식
인간처럼 행동하는 시스템
=인간의 지능을 필요로 하는 어떤 행동을 기계가 따라하는 시스템
=튜링 테스트 접근
=보고, 듣고, 움직이고, 운전하는 행동
합리적으로 행동하는 시스템
=계산 모델을 통해 지능적 행동을 하는 에이전트 시스템
=합리적인 에이전트 접근 방식


인공지능에서의 지도 / 비지도 학습
지도학습
(Supervised Learning)
특징, 결과 로 주어진 훈련 데이터로 학습
특징(feature)과 결과(label) 사이의 관계 모델링
새 데이터에 대해 학습된 레이블로 결과를 추출
==분류. 회귀
비 지도학습
(Unsupervised Learning)
특징만 주어진다
데이터의 특징을 모델링( ‘데이터 스스로 말하게 한다’)
주어진 데이터에 대해 기존 자료중 비슷한 군에 배치
==군집화, 차원축소( 주성분분석)
==군집을 넣어주고(Clustering) k-means 처럼 사용한다
==최후에는 business model 을 만들어서 사용해야 한다


종류별 해석성 / 정확도 diagram



인공신경망 실습 in R
Source Code
# 인공신경망 은닉층수 1개 모형
install.packages("e1071")
library(e1071)
data(iris)
install.packages("neuralnet")
library(neuralnet)
model_net <- neuralnet(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = iris, hidden=3)
model_net
plot(model_net)
Result

 

은닉층 3개 은닉노드 각각 10개씩 증가
Source Code
#은닉층 3개 모형에 은닉 노드를 10,10,10개 모형
library(e1071)
library(neuralnet)
model2_net <- neuralnet(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = iris, hidden=c(10,10,10))
model2_net
plot(model2_net)

 

은닉층 4개 은닉노드 10,4,4,4 모형
Source Code
#은닉층 4개 모형에 은닉 노드를 10,4,4,4개 모형
library(e1071)
library(neuralnet)
model3_net <- neuralnet(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = iris, hidden=c(10,4,4,4))
model2_net
plot(model3_net)

 

 


댓글 없음:

댓글 쓰기