What is end-to-end deep learning? (C3W2L09)
- 딥러닝 분야에서 큰 발전으로 end-to-end 딥러닝이 있음.
- 데이터 처리 혹은 학습 시스템은 다양한 처리 과정이 있으나 end-to-end 딥러닝은 다양한 단계를 받아 하나의 신경망으로 처리
end-to-end 학습의 예시
- 스피치 인식 예시
- x : 음성 파일, y : 대폰
- 기존의 음성 인식 시스템은 여러 처리과정으로 구성
* audio -> MFCC로 음성 파일의 특징을 추출함 -> ML 알고리즘으로 음소들을 알아냄 c, a, t -> 음소들로 단어로 만듬 cat -> 대본
- end-to-end 딥러닝은 음성 파일 x -> 대본 y를 바로 구할 수 있음.
- 기존의 파이프 라인 한 단계 단계 마다를 오랜 시간 연구해 왔엇음
=> end-to-end 딥러닝을 통해 많은 데이터셋으로 x에서 y를 구할수있게됨.
- 문제는 많은 데이터가 필요함.
* 이 예시에서는 3,000h 데이터보다 10,000h, 100,000h 더 많을수록 더 좋은 성능을 보임.
얼굴 인식
- 아래의 사진은 Baidu의 Yunci Lin이 개발한 얼굴 인식기
- 접근하는 사람을 보고, 자동으로 지나갈 수 있게함. RFID 없이 사용가능.
- 어떻게 이런 시스템을 만들까?
- 우선 이미지를 보자 -> 누군가 접근함 . 이미지 x, 이미지 x로 사람 신원 y를 구해야함.
* 하지만 사람이 다양한 방향에서 오거나 가까이서 찍힐수가 있음.
- 그래서 바로 이 이미지를 신경망에다가 넣는게 아니라, 오늘날 쓰이는 방법은 여러 단계로 나누어 얼굴 인식 소프트웨어로 사람얼굴을 가져옴. -> 얼굴을 줌인 해서 키움. -> 신경망에 넣어 사람의 신원을 알아냄.
- 하나의 신경망으로 하는것보다 두 간단한 단계로 해결할수 있음. 첫번쨰에는 얼굴이 어디인지 찾아내고, 두번쨰에는 누구인지 알아냄. => 더 나은 성능을 얻을 수 있다.
- 왜 두 단계로 나누었을때 더 좋은 성능을 얻을까?
1. 각각의 문제가 간단해짐
2. 데이터들이 각각의 작업에 적합함.
* 첫번째 이미지의 경우 사람의 얼굴이 어디있는지 찾아내는대 적합함
- 하지만 이 모든것을 한번에 학습한다면 (x, y)형태의 이미지가 적을 것임.
- end-to-end 학습으로 문제가 풀기에는 데이터가 부족할 수 있으나, 여러 단계로 나누어서 처리하면 더 나은 성능을 보일 수 있음.
다른 예시
1. 기계 번역
- 복잡한 파이프라인으로 구성됨
- english -> text analysis -> . . . -> French
- english -> french
- 이 경우 데이터가 많아 end-to-end는 잘동작함
2. 엑스레이로 나이 추정
- end-to-end가 아니라면 image -> bones 뼈들의 개수, 위치, 각 길이 등 고려 -> 나이
- end-to-end로 image -> age를 바로 구하려면 아주 많은량의 데이터가 필요함.
Whether to Use End-To-End Deep Learning (C3W2L10)
- 머신러닝 시스템 설계시 end-to-end 딥러닝을 사용할 수 있음. 이것의 장단점을 알아보자.
end-to-end 딥러닝의 장단점
1. 장점
- 충분한 데이터가 있으면, x -> y로 만드는 함수를 어떻던 간에 신경망 모델로 찾아낼 수 있음.
* 이전의 음성 인식은 음소 단위로 다룸.
* 알고리즘이 원하는 표현하는 표현을 알아서 직접 학습하면 음소 개념을 사용하지 않고 성능 향상시킬 수 있음.
- 직접 요소들을 설계할 필요가 줄어듬
2. 단점
- 아주 많은 량의 x, y 데이터가 필요함.
* 한쪽 끝 input end 에서 시작해서 반대쪽 끝 output end까지 가기 때문
- 유용한 직접 설계 요소를 무시함.
* 정보가 부족한 경우 알고리즘이 중요한 영감을 구하지 못함.
* 사람이 직접 설계하는 요소들로 알고리즘 모델에 지식을 줄수 있으나 하지 못함.
* 직접 요소 설계하는것은 유용할수 있으나 더 나은 표현 방법이 있는데도 강제로 음소를 학습하도록한다면 성능에 좋지 않음.
end-to-end 딥러닝 사용하기
1.end-to-end 딥러닝
- 새 머신러닝 시스템을 end-to-end로 설계할지 결정할때, x에서 y를구하는데 충분한 양의 데이터가 있는가를 고려하여야함.
- xray 손이미지로 나이를 구하려면 아주 많은 데이터가 필요할 것임.
2. end-to-end가 적절하지 않은 경우
- 자율주행의경우 이미지, Radar, Lidar -> 차량, 입력 찾음 -> 경로 계산 -> 차량 제어
- 차량, 사람 검출운 딥러닝으로 할수 있음. 하지만 차량이나 사람들이 어디로 가는지, 내 차가 어디로 가는지는 다른 소프트웨어(모션 플랜)로 구현.
- 지도 학습 구현시 어떻게 x, y를 연관 시킬지, 어떤 작업을 위한 데이터를 얻는지 고려해야함
- 이미지를 받아 end-to-end 학습을 통해 차량 조종까지는 효과적인 방법은 아님.
=> end-to-end 학습을 사용하기 전에 사용하기에 적절한 문제인지 잘 고려하자
'컴퓨터과학 > 딥러닝 AI Andrew Ng' 카테고리의 다른 글
C1W2L09, C1W2L10 Logistic Regression Gradient Descent, Gradient Descent on m Examples (0) | 2021.04.22 |
---|---|
C1W2L07, C1W2L08 Computation Graph, Derivatives With Computation Graphs (0) | 2021.04.22 |
ROI Pooling과 ROI Align에 대해 잘 정리된 사이트 (0) | 2021.04.22 |
TensorFlow2 API로 모델 설계 방법 예시 (0) | 2021.04.21 |
C1W2L05, C1W2L06 Derivatives, More Derivative Examples (0) | 2021.04.21 |