More actions
No edit summary |
No edit summary |
||
| Line 24: | Line 24: | ||
** 즉, 다중 층을 사용하면 된다 | ** 즉, 다중 층을 사용하면 된다 | ||
* 딥러닝 | * 딥러닝 | ||
** 여러 층을 | ** 여러 층을 통째로 학습시키면(차원이 늘어나면) | ||
** 사람이 찾을 수 있는 특징보다 더 좋은 특징을 찾아 분류를 할 수 있다 | |||
** 이 특징은 사람이 이해하기에는 어려울 수 있다 | |||
** 더 어렵고 복잡한 문제를 해결할 수 있는데 이를 수용력이라 함 | |||
** 딥러닝은 머신러닝 더 넓은 수용력을 가지는 학습 방법 | |||
** 학습할 데이터가 충분히 많아야 더욱 정확하고 복잡한 특징을 추출할 수 있게 된다 | |||
* 딥러닝에 필요한 것들 | |||
** 선형대수학 | |||
** 확률과 통계 | |||
** 다변수 미적분 | |||
** 알고리즘, 최적화 | |||
** 기타 등등 | |||
** 정보이론(엔트로피 ..) | |||
** 기타 수학적 이론들 | |||
=== 딥러닝의 원리 1 - similarity === | |||
** 딥러닝에서는 스스로 좋은 feature를 찾아가기 때문에 최대한 손실이 없는 데이터를 사용하는 것이 유리하다 | |||
** 벡터의 유사도를 나타내는 방법 | |||
** 유클리드 거리(두 벡터의 차이) | |||
** 코사인 유사도(두 벡터의 내적) | |||
** 하지만 유사한 데이터라고 해서 유사한 벡터인 것은 아니다 | |||
** 이를 해결하는 것이 머신러닝의 핵심적인 목교 | |||
** 입력층 벡터를 유사하게 -> 입력 데이터의 모델링 | |||
** 마지막 은닉 층 벡터를 유사하게 -> 네트워크 모델링 | |||
** Supervised Learning | |||
** 분류의 정답인 함수 값을 통해 어떤 데이터들이 분류가 같아야 하고, 분류가 달라야하는지 | |||
** 기준을 가르치는 것 | |||
** 뉴럴 네트워크를 학습한다는 것 | |||
** 학습한다는 것은 정답과의 오차를 줄이는 방향으로 모델 파라미터를 수정해 나가는 것 | |||
** 학습이 잘 된 후에는 어떤 입력에 대해 강하게 반응하려면 가중치가 그 벡터와 유사해 진다 | |||
** 모델링 | |||
** 더 적은 데이터를 가지고 더 적합한 학습을 시킬 수 있도록하는 것이 모델링 | |||
** ex) CNN | |||
** 응용 | |||
** 변종 악성코드의 탐지와 분류 | |||
** 악성코드의 유사도 | |||
*** 메타데이터가 유사하다 | |||
*** 파일 구조와 내용이 유사 | |||
*** 코드 패턴, 행위 패턴이 유사 | |||
*** 사용하는 API가 유사 | |||
*** 개발자의 습관이 유사 | |||
*** 노리는 대상이나 취약점이 유사 | |||
*** 통신하는 대상이나 패킷이 유사 | |||
*** 압축, 난독화, 암호화, 패키지 방식이 유사 | |||
*** 악성 여부? | |||
*** 정말 모든 악성 코드를 유사한가? | |||
*** 정말 모든 정상 코드는 유사한가? | |||
*** 정말 정상코드와 악성코드는 유사하지 않은가? | |||
*** 탐지명 | |||
*** 보안 분석가들이 오랜 기간동안 악성코드를 분류 | |||
*** 유사한 악성코드를 같은 탐지명으로 분류할까? | |||
*** 같은 탐지명으로 분류된 악성코드들은 유사할까? | |||
*** 하나의 악성코드는 하나의 탐지명으로만 분류할 수 있을까? | |||
*** 탐지명을 label로 학습을 시킨다 하더라도 | |||
** 신종 악성코드의 탐지와 분류 | |||
*** 학습한 데이터의 유사한 악성코드가 없다 | |||
*** 학습한 훈련 데이터에 같은 분류로 분류된 악성코드가 없다 | |||
=== 딥러닝의 원리 2 - Probability === | |||
* 변별 모델 | |||
** classification, regression | |||
** 입력 데이터 x가 주어질 때, 간단한 응답 y를 결정 | |||
** 조건부 확률을 사용 | |||
** 조건부 확률의 함정 | |||
*** | |||
** 조건부 활률 뒤집기 | |||
*** 수 많은 경우의 수가 존재하므로 직접 계산하는 것은 굉장히 어렵다 | |||
*** 결합 확률 | |||
*** x,y가 동시에 일어날 확률 | |||
*** 베이즈 정리에 의해 계산 | |||
*** 결합 확률을 계산 | |||
* 생성모델 | |||
** y라는 속성을 같는 그럴듯한 x를 생성 | |||
** 딥러닝을 활용하면 y뿐만아니라 대량의 x로부터 숨겨진 특징 z를 찾아낼 수 있다 | |||
** 가르친 적 없는 x를 생성 | |||
** 딥러닝 기반 생성모델 VAEs, GANs, Auto-Regressive model, DBNs, RBMs | |||
== ~~(딥)~~러닝 == | == ~~(딥)~~러닝 == | ||
Revision as of 07:17, 1 July 2017
이스트소프트 AI Plus Lab
- 컴퓨터 비전
- 자연어 처리
- 악성코드 탐지
- 금융시장 예측
딥러닝의 원리
딥러닝의 이해
- 인공지능
- 사람만큼이나 사람보다 똑똑한 기계
- 머신러닝
- 더 많은 데이터를 더 빠르게 처리할 수 있지만, 처리 알고리즘은 사람이 만들어야 한다
- 사람보다 똑똑한 기계를 만들기 위해 사람(생물)이 학습하는 방법을 모델링
- 데이터로부터 경험적, 귀납적으로 만들어낸 알고리즘에 의해 추론
- feature와 label
- 더 좋은 feature들을 추출할 수 있다면, 더욱 쉽게 분류할 수 있다
- feature engineering
- 딥러닝 이전 머신러닝에서 반드시 수행되어야하는 작업
- 사람이 정답을 더 잘 찾기 위한 특징을 찾아내고 (->도메인 전문가)
- 사람이 데이터에서 그런 특징을 식별하고 추출하는 알고리즘을 설계하는 것 (->알고리즘)
- 단일 층으로 분류가 불가능하다면, 분류가 가능할 때까지 공간을 변형시키면 된다
- 즉, 다중 층을 사용하면 된다
- 딥러닝
- 여러 층을 통째로 학습시키면(차원이 늘어나면)
- 사람이 찾을 수 있는 특징보다 더 좋은 특징을 찾아 분류를 할 수 있다
- 이 특징은 사람이 이해하기에는 어려울 수 있다
- 더 어렵고 복잡한 문제를 해결할 수 있는데 이를 수용력이라 함
- 딥러닝은 머신러닝 더 넓은 수용력을 가지는 학습 방법
- 학습할 데이터가 충분히 많아야 더욱 정확하고 복잡한 특징을 추출할 수 있게 된다
- 딥러닝에 필요한 것들
- 선형대수학
- 확률과 통계
- 다변수 미적분
- 알고리즘, 최적화
- 기타 등등
- 정보이론(엔트로피 ..)
- 기타 수학적 이론들
=== 딥러닝의 원리 1 - similarity ===
- 딥러닝에서는 스스로 좋은 feature를 찾아가기 때문에 최대한 손실이 없는 데이터를 사용하는 것이 유리하다
- 벡터의 유사도를 나타내는 방법
- 유클리드 거리(두 벡터의 차이)
- 코사인 유사도(두 벡터의 내적)
- 하지만 유사한 데이터라고 해서 유사한 벡터인 것은 아니다
- 이를 해결하는 것이 머신러닝의 핵심적인 목교
- 입력층 벡터를 유사하게 -> 입력 데이터의 모델링
- 마지막 은닉 층 벡터를 유사하게 -> 네트워크 모델링
- Supervised Learning
- 분류의 정답인 함수 값을 통해 어떤 데이터들이 분류가 같아야 하고, 분류가 달라야하는지
- 기준을 가르치는 것
- 뉴럴 네트워크를 학습한다는 것
- 학습한다는 것은 정답과의 오차를 줄이는 방향으로 모델 파라미터를 수정해 나가는 것
- 학습이 잘 된 후에는 어떤 입력에 대해 강하게 반응하려면 가중치가 그 벡터와 유사해 진다
- 모델링
- 더 적은 데이터를 가지고 더 적합한 학습을 시킬 수 있도록하는 것이 모델링
- ex) CNN
- 응용
- 변종 악성코드의 탐지와 분류
- 악성코드의 유사도
- 메타데이터가 유사하다
- 파일 구조와 내용이 유사
- 코드 패턴, 행위 패턴이 유사
- 사용하는 API가 유사
- 개발자의 습관이 유사
- 노리는 대상이나 취약점이 유사
- 통신하는 대상이나 패킷이 유사
- 압축, 난독화, 암호화, 패키지 방식이 유사
- 악성 여부?
- 정말 모든 악성 코드를 유사한가?
- 정말 모든 정상 코드는 유사한가?
- 정말 정상코드와 악성코드는 유사하지 않은가?
- 탐지명
- 보안 분석가들이 오랜 기간동안 악성코드를 분류
- 유사한 악성코드를 같은 탐지명으로 분류할까?
- 같은 탐지명으로 분류된 악성코드들은 유사할까?
- 하나의 악성코드는 하나의 탐지명으로만 분류할 수 있을까?
- 탐지명을 label로 학습을 시킨다 하더라도
- 신종 악성코드의 탐지와 분류
- 학습한 데이터의 유사한 악성코드가 없다
- 학습한 훈련 데이터에 같은 분류로 분류된 악성코드가 없다
딥러닝의 원리 2 - Probability
- 변별 모델
- classification, regression
- 입력 데이터 x가 주어질 때, 간단한 응답 y를 결정
- 조건부 확률을 사용
- 조건부 확률의 함정
- 조건부 활률 뒤집기
- 수 많은 경우의 수가 존재하므로 직접 계산하는 것은 굉장히 어렵다
- 결합 확률
- x,y가 동시에 일어날 확률
- 베이즈 정리에 의해 계산
- 결합 확률을 계산
- 생성모델
- y라는 속성을 같는 그럴듯한 x를 생성
- 딥러닝을 활용하면 y뿐만아니라 대량의 x로부터 숨겨진 특징 z를 찾아낼 수 있다
- 가르친 적 없는 x를 생성
- 딥러닝 기반 생성모델 VAEs, GANs, Auto-Regressive model, DBNs, RBMs