728x90

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 학습을 사용하기 전에 사용하기에 적절한 문제인지 잘 고려하자

 

 

300x250

+ Recent posts