Sign In

[AI] 인공지능 개요

Y
Yerim
  1. ML
  2. DL

AI vs ML vs DL

AI
(Artificial Intelligence)
인간의 지적 능력을 컴퓨터를 통해 구현
규칙 기반 알고리즘
ML
(Machine Learning)
컴퓨터가 스스로 학습하여 인공지능의 성능 향상
선형회귀, 랜덤포레스트
DL
(Deep Learning)
머신러닝 알고리즘의 종류 (인공신경망)
CNN, RNN, Transformer

머신러닝 Machine Learning

•
“컴퓨터가 명시적으로 프로그램되지 않고도 학습할 수 있도록 하는 연구 분야”
•
과거 데이터로부터 숨겨진 규칙을 찾아 일반화 → 미래 예측에 활용
전통적인 프로그래밍
•
규칙 기반 Rule-Based
•
모든 상황 포괄 어려움 → 예외 취약
머신러닝
•
데이터 기반 Data Based
•
데이터만 준비하면된다

학습 Learning

•
머신이 규칙을 알아내는 과정
•
인간의 입장에서 머신이 훈련 training 시키는 과정
•
학습 데이터가 많을 수록 유리하다
•
데이터: $(y_i, x_i), i=1, 2, 3, …, n$
◦
반응변수 response variable: $y_i$
◦
설명변수 explanatory variable: $x_i = (x_{i1}, x_{i2}, …, x_{ip})$
•
반응변수 Y와 설명변수 X간의 관계를 찾는것 → 훈련
y = f(x)
•
전통적: f(), x → y
•
머신러닝 x, y → f()
Learning 방법
•
다양한 학습 알고리즘들이 존재
•
KNN, SVM, regression, random forest, deep neural network, …
•
전통적인 문제 해결: 인간 분석자가 데이터를 연구 → 원리, 이론 도출
•
Machine Learning: 데이터와 학습 방법을 제시 → 프로그램 스스로 원리나 이론 도출
Learning 결과
•
어떤 방법으로 학습 시켰는지에 따라 model의 형태는 다양

Machien Learning 분류

Classification
Regression
Clustering
지도 학습
Supervised Learning
비지도학습
Unsupervised Learning
강화학습
Reinforcement Learning
회귀 Regression
분류 Classification
군집화 Clustering
설명변수 X, 반응변수 Y
설명변수 X
행동 심리학 기반

학습 모델 개발 과정

데이터 수집
•
데이터의 품질이 학습된 모델의 품질을 결정한다 (많고 다양한 데이터를 수집해야함)
•
데이터의 형태에 따라 다양한 방법으로 수집 가능
•
대표성 있는 훈련 데이터를 수집하는 것이 중요 → 타겟 집단을 대표해야함
•
샘플수가 크더라도 샘플링 편향이 발생할 수 있다
데이터 전처리
•
머신러닝에서 가장 중요한 작업 중 하나 → 데이터를 변환하여 작업 처리하는 것
•
컴퓨터는 숫자로만 학습 가능 → 머신러닝을 위해 모든 데이터를 숫자로 바꿔야 한다
•
데이터 전처리는 머신에게 학습시키기 위한 데이터프레임을 만드는 것
•
데이터 전처리를 통해 변수 간 관계를 파악하고 변수들의 특징을 더 잘 이해할 수 있다
모델링 및 훈련
•
적절한 알고리즘을 선정하여 코드 작성, 학습시킨다
•
데이터 타입에 따라 모델 구축/목적에 따라 선정하는 모델이 달라진다
•
모델 평가: 모델이 잘 학습되었는지 판단하는 다양한 평가지표가 존재
◦
모델 정확도 (Accuracy): 모델의 예측/분류 등 성과에 대한 지표
◦
모델 복잡도 (Complexity): 모델의 학습 과정에서 소요되는 계산량
◦
모델 해석도 (Interpretability): 학습 결과에 대한 해석력이 높을수록 모델 피드백이 쉬움
◦
모델 확장도 (Scalability): 데이터의 추가에 따른 모델의 정확도 상승이 어디까지 가능한지에 대한 지표
•
모델 배포: 배포 후, 성능을 지속적으로 체크

Train, Test, Validation

Training \ set:Validation \ set:Test \ set = 60:20:20
•
머신러닝, 딥러닝 모델은 데이터셋을 나누어 학습
•
정해진 룰은 없지만 위와 같은 비율을 일반적으로 사용
Training data (50 - 75%)
•
과거 데이터의 역할
•
training set은 k개 만큼 나누어 교차 검증 cross-validation에 사용한다
Validation data (나머지)
•
학습 과정에서 만들어지는 모델을 평가 → 더 나은 모델을 만드는 데 기여
•
학습 방법에 따라 필요치 않은 경우도 있음
Test data (10 - 30%)
•
미래 데이터의 역할
•
학습에 사용하지 않은 일부 데이터를 미래 데이터로 간주
•
미래 예측시 모델이 어느 정도의 성능을 보일지를 판단하는 자료
•
Training accuracy: 모델이 과거 데이터를 얼마나 잘 설명할 수 있는가?
•
Test accuracy: 모델이 미래의 데이터를 얼마나 잘 예측할 수 있는가?
•
일반적으로 Training accuracy > Test accuracy

머신러닝 라이브러리

scikit-learn
install scikit-learn
•
분류, 회귀, 차원축소 등 머신러닝 관련 알고리즘들을 구현
•
데이터 전처리, hyper-parameter tuning, 모델 평가 기능도 제공
pandas
pip install pandas
•
Numpy의 배열은 주로 숫자를 저장
•
Pandas의 data frame은 문자, 숫자 컬럼을 함께 저장 가능

딥러닝

머신러닝 알고리즘 중 한 종류, 데이터 유닛의 층을 여러 개 쌓아 구조적이지 않은 데이터에서 고수준 표현을 학습
•
최근 인공지능 개발이 이루어지고 있는데, 많은 분야에서 딥러닝 기술들이 사용된다.
•
대부분의 딥러닝 시스템은 여러 은닉층을 쌓은 인공 신경망으로 심층 신경망과 거의 동의어로 사용되고 있다.
•
딥러닝의 대표적인 라이브러리에는 TensorFlow와 Keras가 있다.
딥러닝용 데이터
•
보통의 머신러닝 알고리즘은 테이블 형태의 정형 데이터를 입력으로 사용
•
딥러닝 알고리즘은 비정형 데이터에도 적용 가능하다
•
생성 모델링은 이미지, 텍스트 등 비정형 데이터를 생성하는 것이 관심사
신경망
•
딥러닝을 이해하고 인공지능을 구현하는 데 필요한 첫 출발점
•
사람들은 인간의 뇌를 모방하여 인공지능을 구현하려고 한다
•
인공신경망을 알기 위해선 사람의 뇌를 먼저 알아야 한다.

딥러닝 라이브러리

TensorFlow
•
구글에서 개발한 TensorFlow는 수치 계산과 대규모 머신러닝을 위한 오픈 소스 라이브러리
•
다수의 머신러닝과 딥러닝 모델과 알고리즘을 결합해 공통 메타포를 통해 유용성을 높임
•
프론트 엔드 API를 제공하며 성능이 우수한 C++로 에플리케이션을 실행
PyTorch
•
페이스북의 AI 연구팀이 2016년에 만든 오픈소스 라이브러리
•
NLP 및 컴퓨터 비전과 같은 딥 러닝 애플리케이션에 유용
•
빠른 실행 속도, CPU 및 GPU에서 작동할 수 있는 유연한 라이브러리
Keras
•
파이썬으로 구현된 간결한 딥러닝 라이브러리
•
직관적 API 제공
•
Tensorflow, theano, CNTK 등 딥러닝 엔진 사용
•
구글 엔지니어인 프랑소와 쏠레에 의해 개발, 유지보수
Yerim-DevNote
Subscribe to 'Yerim-DevNote'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to 'Yerim-DevNote'!
Subscribe
👍