인공지능 기술과 산업별 실무적용 기법 (문재현 강사)
지도학습 supervised learning
- 정답에 영향을 미치는 변수, 정답에 영향을 미치는 모델을 -> 인간이 직접선택하므로 인간개입에 의한 분석이다.
- 모델 - 학습모델, 설명변수(x), 종속변수(y)
1. 분류분석
일련의 데이터가 포함된 기존 범주를 학습하고 새로운 범주를 구분하여 경계를 나누는 것
대표적인 모델
- K-NN: 새로운 데이터를 입력 받았을 떄 가장 가까이 있는 것이 무엇이냐를 중심으로 새로운 데이터 종류를 정해주는 것
- NB(베이즈 법칙): 사전 확률과 우도 확률을 알면 사후 확률을 알 수 있다는 것
- DT(의사결정트리): 의사결정규칙을 도표화하여 분류과정에서 예측을 수행하는 분석 방법
- SVM: 학습데이터와 범주 정보를 학습하면서 얻어진 확률분포를 이용해 의사결정함수를 추정함
2. 회귀분석
- 연속적인 값에서 입력에 대한 예측을 하는 문제
- 주어진 데이터를 가지고 예측하는 것
- 새로 들어온 값은 회귀에 따라서 새로운 값을 예측함
비지도학습 unsupervised learning
- 정답이 없는 머신러닝의 비지도 학습
- 결과가 없는 데이터셋을 학습하다보니 데이터 양이 많이 필요함
- 데이터에 대한 지식이 많이 필요함
- 공통되는 데이터들끼리 묶어서 패턴을 분석하려는 목적
1. 군집분석 clustering
- 데이터셋에서 구분지어지는 집단을 찾아내는 방법
- 그룹화를 통해서 예측함
- ex) 카드결제 내역을 기반으로 한 카드상품 개발
대표적인 모델
- 계층적 군집분석: 한 군집이 다른 군집을 포함할 수 있는 구조
- 음악 > 락 > 하드락, 펑키락
- 비계층적 군집분석: 군집끼리 포함관계를 이루지 않고 서로 독립적인 한 군집으로 만드는 기법
- k-means: 거리를 기반으로 하는 군집화 기법
- DB-SCAN: 밀도를 기반으로 군집화 하는 방법
2. 연관성분석 Association Rule Analysis
- ‘A를 하면 B도 하더라’라는 연관성을 발견하는 것
- ex) 장바구니 분석 → A를 사면 B도 사더라
- 주어진 데이터를 가지고 예측하는 것
준지도학습 semi-supervised learning
- 성능을 높이기 위한 준지도학습
- 목표값이 표시된 데이터와 표시되지 않은 데이터를 모두 학습에 사용함
- 지도학습과 비지도학습 중간에 위치
- 태그된(labeled) 데이터와 태그되지 않은(unlabeled) 데이터를 모두 활용함
- 데이터를 태그하는 작업은 많은 시간과 비용이 듦
모델 설정
지도학습 → 정답이 있을 때
준지도학습 → 정답이 있을때와 없을때 모두 사용
1. 셀프 트레이닝
높은 확률값이 나오는 데이터 위주로 데이터를 취함
장점
- 가장 간단하게 활용할 수 있는 준지도학습
- 알고리즘 적용이 용이함
단점
- 반복 초반에 설정이 잘못될 경우 반복을 하면서 결과 값이 예측했던 값과 다르게 실패할 수 있음
- 완벽하게 100% 성공하는 것은 아님
과정
- 레이블이 달린 데이터로 모델을 학습시킴
- 이 모델을 가지고 레이블이 달리지 않은 데이터를 예측함
- 이중에서 가장 확률값이 높은 데이터들만 레이블 데이터로 다시 가져감
- 위 과정을 반복함
셀프 트레이닝 예시
- 이름이 동일한 용어(이미지)가 있다고 가정(Eclipse 자동차, 달의 일식)
- 라벨을 부여하여 학습 시킴
- 라벨을 부여하지 않은 이미지가 추가로 들어올 때 확률값이 높게 나온 이미지만 모델에 학습시킴
- 1~3 과정을 반복함
2. 공동훈련 co-training
셀프훈련의 가장 큰 단점은 한번 잘못된 규칙을 반복하면서 계속 다른 자료에 영향을 미칠 수 있다는 점 → 이를 보완하기 위해 만들어진 알고리즘
변수들이 두개의 집합으로 나누어 질 수 있고 각 집합에서 분류기가 충분히 훈련될 수 있다는 가정을 하고 있음
원리
모델 A가 레이블(정답)이 없는 데이터의 예측에 대해 매우 신뢰도가 높은 반면,
모델 B가 신뢰도가 낮다면 이 공동훈련 모델에서는 모델 A에 의해 예측된 레이블(정답)을 가지고 모델 B의 트레이닝 Set에 추가됨
장점
다른 분류 모델의 도움을 받아 각 모델은 독립적으로는 학습될 수 없는 데이터셋의 특성들을 배울 수 있음
강화학습 reinforcement learning
- 성과를 높이기 위한 강화학습
- 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동 중 보상을 최대화 하는 행동 혹은 행동 순서를 선택하는 방법
- 과거의 결과가 충분하지 않은 상태에서 의사결정(action)에 의한 결과(reward)를 근거로 미래의 가치(value)를 극대화하는 것
- 에이전트가 앞으로 받을 보상을 최대화하는 일련의 행동을 찾는 방법
- 지도학습과 달리 정답(y)이 정해지지 않음
- 비지도학습과 달리 정답(y)이 되지 않은 데이터의 모음에서 구조를 찾는 방법이 아님
- ex) 바둑의 알파고 - 알파고는 최종적인 승리의 추정 가능성을 극대화 해서 다음 수를 결정함. 얼마나 승리를 하느냐보다 알파고는 이기는 것이 제일 중요
강화학습의 구조
- agent: 상태 관찰, 행동 선택
- environment: 주어진 환경
- state: 현재 상황을 나타내는 정보
- action: 현재 상황에서 에이전트가 하는 것
- reward: 행동의 좋고 나쁨을 알려주는 정보
1. 모델프리 강화학습 model-free RL
일반적인 강화학습과의 차이는 환경의 인지 유무이다. 환경을 미리 알고 있지 않다. 직접 해봐야 결과를 알 수 있다.
환경 동작 유무를 모르기 때문에 탐사(exploration)이 필요하다.
2. Q-learning
사람이 세상을 배워나가는 방식을 강화학습에 반영하여 수행하는 방식을 의미함
처음에는 무작위로 행동(Explore)하여 경험을 쌓고 나이가 들면 경험을 바탕으로 행동
초창기가 지나면서 무작위 행동 빈도(Exploration rate)를 낮춤
성장하면서 무작위 행동을 하지 않을 경우 경험활용(exploit) 함
→ Exploration rate가 낮아지면 Explit을 한다.
경사하강법 gradient descent
- 인공지능 알고리즘을 훈련 시킬 때 사용되는 방법
- 목표: 최적의 공식을 찾는 것
원리
지도학습의 선형회귀의 예를 들어서 설명함
최소값을 찾아가는 방법
ex) 기온이 높아질수록 호빵 판매량 감소
학습률 learning rate
경사하강법에서의 보폭
학습률 값이 작으면 속도가 매우 느려서 학습시간이 매우 오래걸린다.
학습률 값이 크면 최소값을 지나칠 수 있다.
따라서 최적의 학습률을 찾는것은 어렵다. 다양한 학습률을 시뮬레이션하여 최적의 학습률을 테스트해야한다.
1) 경사하강법 동작구조
최적의 그래프 기울기 값을 찾기 위해 편미분하여 최적화 값으로 찾아감
2) 경사하강법이라 명명한 이유
그래프의 접선의 경사가 감소하여 접선의 기울기의 절대값이 0이 되기 때문임
3) 학습률이 클 때, 작을 때
- 학습률(Learning Rate)값이 너무 크면 최소값을 지나칠 수가 있음
- 학습률(Learning Rate)값이 작으면 속도가 매우 느려서 학습시간이 매우 오래 걸리게 됨
딥러닝 deep learning
- 머신러닝의 세부 방법론들을 통칭하는 개념 (머신러닝 > 딥러닝)
- deep = 층 (layer)
- 층을 많이 만들어 보다 정확한 규칙을 만들어 나가는 것
- 계층적 표현 학습 방법이라고도 함
딥러닝과 머신러닝의 차이
1. 데이터 특징을 사람이 관여하지 않고 전체를 학습시킴
- ex) 개와 고양이를 구별하는 것을 학습시킨다고 가정하면
- 머신러닝 - 특징을 전달 → 학습 → 결과
- 딥러닝 - 개와 고양이 자체를 알아서 학습시킴
2. 인공신경망 구조를 사용하여 학습함
원리
- 데이터 입력 input
- 여러 층을 통해 예상 결과값 result를 만듦
- 기대출력값 target 과 result를 비교하여 그 차이를 구함 (Loss Function 손실함수)
- 손실함수의 결과를 개선하기 위해 가중치를 수정하는 과정의 backpropagation 역전파를 거침
- optimizer를 통해 가중치를 layer에 수정하여 반영함
- 다시 학습을 시작함
활용
- 자연어 처리
- 음성 인식
- 이미지 인식
- 추천 시스템
퍼셉트론 percaptron
- 신경망 알고리즘의 기원
- 다수의 신호로 하나의 신호를 출력함
문제점
OR, AND, NAND 쉽게 구현 가능. 단, XOR GATE의 경우 나눌 수 없는 문제가 발생
→ 해결을 위해 다중 퍼셉트론이 사용됨
다중 퍼셉트론 multilayer percaptron
XOR GATE 문제를 해결하기 위해 퍼셉트론을 다중으로 층을 쌓으면 가능하다.
DNN: 은닉층이 2개 이상인 신경망
인공 신경망 artificial neural network
- 인간의 생물학적 뉴런 모델을 모방하여 만든 방법
- 퍼셉트론과 차이점은 활성화 함수임
활성화 함수
입력 신호의 총합을 출력 신호로 변환하는 함수
구성요소
- input layer
- hidden layer
- output layer
역전파 알고리즘 backpropagation
결과값은 오차를 가지게 되는데 이 오차를 다시 역방향으로 hidden layer와 input layer로 오차를 다시 보내면서 가중치 계산하면서 output에서 발생했던 오차를 적용하는 것
- 순전파 - 오차발생
- 역전파
- 가중치 업데이트
- 순전파 - 오차발생
오차값이 0에 가까워질때까지 학습함
hidden layer가 많아질 경우 계산이 굉장히 복잡해짐
RNN 알고리즘 (Recurrent Neural Networks)
음성, 문자 등 순차적으로 등장하는 데이터 처리에 적합한 모델이다
단점
관련 정보와 그 정보를 사용하는 지점 사이 거리가 멀 경우 역전파시 그래디언트가 점차 줄어 학습능력이 크게 저하되는 것 (vanishing gradient problem)
LSTM 알고리즘 (Long Short-Term Memory models)
RNN의 단점을 극복
메모리를 가지고 있어 과거정보를 이용해서 미래의 데이터를 예측한다.
CNN 알고리즘 convolutional neural network
이미지 객체, 얼굴, 장면을 인식하기 위한 패턴을 찾는데 유용한 알고리즘
input 이미지 X convolutional 합성곱 = feature map 이미지의 윤곽
완전 연결 계층의 문제점
1차원의 데이터로 펼치게 되면 3차원의 정보들이 사라지게됨
pooling 종류 및 장점
처리되는 데이터의 크기를 줄여준다.
연산에 들어가는 리소스가 줄어든다.
데이터의 크기를 줄이면서 소실이 발생하여 overfitting을 방지한다.
활용
1. 댁내기기 활용
머신러닝과 IoT기술을 융합한 스마트 댁내 통합 시스템 구축
시스템 구성
라즈베리파이로 대체 구현됨
생활 패턴에 따른 자동 제어를 인공지능 학습을 통해 제공함
python의 라이브러리 scikit-learn을 사용라여 머신러닝 프로그램의 유효성을 검증
비지도학습에 속하는 DBSCAN이라는 머신러닝 기법으로 데이터를 분류함
2. 요리추천
YOLO 알고리즘
단일 단계 방식의 객체 탐지 알고리즘
원본 이미지를 동일한 크기의 그리드로 나눔
이미지에 객체가 포함되어있는지 배경만 단독으로 있는지에 대한 여부
CNN 알고리즘보다 정확도가 낮지만 속도가 빠르다
ex) 냉장고를 찍은 사진을 재료가 무엇이 있는지 파악한다.
내용 기반 필터링 추천 contents-based-filtering
내용을 분석한 속성과 비교 대상의 속성의 유사성을 계산하고 유사도가 높은 순으로 추천해줌
→ 가중치를 이용한 유사도 개선 ex) 닭이 없는데 찜닭을 추천할 수 있음 → 가중치를 추가해서 주재료가 없으면 유사도가 떨어져 추천되지 않도록함
3. 방범 서비스 4. 금융 서비스 5. 커플 매칭 서비스
'DATA' 카테고리의 다른 글
MongoDB란? windows 설치하기 / Studio 3T, Compass 사용하기 (0) | 2022.12.24 |
---|---|
[Fastcampus 데이터 엔지니어링] 데이터 엔지니어는 어떤 언어를 배워야 할까? (0) | 2022.12.03 |
SEO 검색 최적화 하는 방법 (0) | 2022.06.24 |
Data 종류별 정리 (0) | 2022.06.12 |
Hadoop & Hbase & Hive 란? (0) | 2022.06.07 |
댓글