인공지능, 머신러닝, 딥러닝에 대한 사내 세미나가 매 주 진행된다. 연구소의 구성원들이 각자 학습한 내용을 공유하는 자리로 이제 시작하는 만큼 기본적인 내용 부터 차근차근 학습하며 정리할 수 있는 좋은 기회인 것 같다. 세미나를 통해 얻은 지식들을 잊지 않도록 조금씩 정리해 본다.
Artificial Intelligence
인공지능의 개념은 1956년 다트머스 회의에서 존 매카시라는 분이 '인공지능'이라는 용어를 처음으로 사용하면서 '인텔리전트한 기계를 만드는 과학과 공학'이라는 개념으로 알려지게 된다.
지금까지 인공지능은 단순히 제어 프로그램을 탑재하는 형태에서 지식을 활용한 탐색과 추론을 통해 고정적인 패턴을 정의한 형태를 지나 사람의 지도 아래 데이터를 학습할 수 있는 알고리즘을 적용한 형태로 발전했으며, 최근에는 사람의 개입없이 기계가 스스로 학습하는 형태로 발전하고 있다.
인공지능에 대한 연구는 다음과 같이 4가지 관점으로 진행되고 있다.
- 인간처럼 생각하기 위한 것 -> 컴퓨터가 인간처럼 생각하는 것을 연구
- 인간처럼 행동하기 위한 것 -> 보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구
- 이성적으로 생각하기 위한 것 -> 지각, 이성, 행동 등을 가능하게 만드는 연산에 관한 연구
- 이성적으로 행동하기 위한 것 -> 지능적인 에이전트 설계를 위한 연구
내 나름대로 인공지능의 정의를 내려보자면 머신러닝과 딥러닝을 통해 사람이 하고자 하는 행동과 생각을 기계가 할 수 있도록 달성하고자 하는 목적에 맞게 데이터를 모델(알고리즘)을 학습하여 실현하는 현실적인 기술 정도로 이해하면 될 것 같다. (사실 인공지능을 몇 문장으로 정의한다는 것 자체가 불가능한 것 같다)
Machine Learning
머신러닝(기계학습)이란 많은 양의 데이터를 알고리즘을 통해 분석하고, 분석된 결과를 학습하며 이러한 학습 결과를 토대로 결과를 판단하거나 예측하는 기술을 말한다. 즉 데이터로 부터 결과를 예측하거나 판단하기 위해서는 데이터를 학습해야 하는데, 데이터 학습 방법은 크게 지도학습, 준지도학습, 비지도학습, 강화학습으로 나뉘어 진다.
지도학습 알고리즘
- 분류(Classification) 알고리즘의 종류: 의사결정트리(Decision Tree), K-최근접이웃법(K-Nearest Neighbor), SVM(Support Vector Machine)
- 회귀예측(Regression Prediction) 알고리즘의 종류 : 선형회귀(Linear Regression), 로지스틱회귀(Rogistic Regression)
비지도학습 알고리즘
- 군집(Clustering) : K-Means, GMM(Gaussian mixture Model)
- 차원축소(Dimension Reduction) : 주성분분석(PCA, Principal Component Analysis), 특이값분해(SVD, Singular Value Decomposition), 잠재 디리클레 할당(Latent Dirichlet Allocation)
Deep Learning
딥러닝은 머신러닝의 알고리즘인 인공신경망에서 발전한 심층신경망(Deep Neural Network)을 사용하여 인간의 뇌(뉴런)와 유사한 정보 입출력 계층을 활용하도록 한 학습방법이다. 인공신경망을 이용한 학습은 대단히 많은 양의 데이터 연산을 수행해야 하는데 기술이 발전함에 따라 컴퓨팅 파워(GPU, Memory 등)가 폭발적으로 향상되면서 대량의 연산 수행이 가능해졌다. 딥러닝은 기존의 인공신경망을 구성하는 퍼셉트론(입력층, 은닉층, 출력층) 안의 은닉층을 다중으로 연결하거나 퍼셉트론을 다중으로 연결한 다중퍼셉트론(MLP, Multi-Layered Perceptrons)을 구성하여 병렬연산을 수행한다.
지도학습의 인공신경망
- DFN(Deep Feedforward Network) : 입력층, 은닉층, 출력층으로 이루어진 가장 기본적인 Deep Neural Network
- 순환신경망(RNN, Recurrent Neural Network) : 은닉층의 각 뉴런에 순환 연결을 추가하여 시간에 따른 순서를 기억하도록 연결한 인공신경망. 단어의 순서에 따른 연결이 고려되는 자연어 처리에 많이 사용
- 합성곱신경망(CNN, Convolutional Neural Network) : 인간의 시각처리 방식을 모방하기 위하여 합성곱이라는 연산을 적용한 인공신경망. 이미지 처리에 많이 사용
비지도학습의 인공신경망
- 생성적적대신경망(GAN, Generative Adversarial Network) : 생성자와 식별자가 서로 경재하며 데이터를 생성하는 인공신경망
- Autoencoder : 단순히 입력을 출력으로 복사하는 신경망
- VAE(Variational Autoencoder) : 입력값을 확률코딩과 표준편차코딩을 만들고 가우시안 분포로 샘플링한 값을 출력하는 신경망
학습결과의 평가와 검증
- Overfitting과 Underfitting
- 혼동행렬(Confusion Matrix) : 정확도(Accuracy), 민감도(Sensitivity), 정밀도(Precision), F1 score 측정
- ROC(Receiver Operating Characteristics) 커브 : 가로축을 특이도(Specificity), 세로축을 민감도(Sensitivity)로 시각화한 그래프
- P-value : 가설을 검증하기 위한 확률값
- 손실함수(Loss Function) : 입력에 대한 예측값과 실제 값 사이의 오차를 계산하는 함수
- 비용함수(Cost Function) : 모든 입력에 대한 손실값의 평균을 구하는 함수
정리하면서 아직 개념에 대한 이해가 많이 부족하다.
앞으로 세미나를 진행하면서 학습방법간 차이와 특징 그리고 주요 알고리즘의 원리와 선택 시 고려사항에 대해서도 계속 정리해야겠다.
AI 전문가가 되는 그날까지 화이팅!
블로그를 통해서 나마 세미나에 참여해주시는 분들께 감사의 말씀을 전합니다.
'ML & AI' 카테고리의 다른 글
[자료구조] 머신러닝 알고리즘과 관련있는 자료구조 (0) | 2020.11.24 |
---|