What is End-to-end Deep Learning?

- Speech recognition example

 

음성파일 input $x$ 와 transcript output $y$가 있다

기존에는 여러 processing stages를 거쳐야 했다

1) $x$ 로부터 feature 추출 (MFCC)

2) Phonemes 분리 (머신러닝 알고리즘)

3) 단어 형성

4) transcript $y$ 형성

 

end-to-end deep learning은 $x$를 입력하면 바로 $y$가 나온다

end-to-end deep learning은 큰 데이터를 필요로 한다 - 데이터 양이 적을 때는 기존ML방식이 더 잘 됨

 

- face recognition

 

출입시 활용하는 시스템을 만든다고 해보자: 카메라 이미지 $x$가 입력되면, 그 사람의 신원 $y$으로 맵핑되어야 함

(1) 사람의 얼굴을 인식하는 소프트웨어를 적용한다

(2) 인식된 부분을 확대하고 크롭한다

(3) 그 이미지를 신경망에 입력한다 (입력된 이미지들이 동일인인지 분류하는 문제)

 

end-to-end으로 $x$를 $y$로 바로 맵핑하지 않고, 두 단계로 쪼개는 것이 더 효과적이라는 것을 알 수 있었음

각 단계에서 활용할 수 있는 데이터가 충분히 있다면 이 방법이 낫다 $x$에서 $y$로 맵핑하는 데이터는 현실적으로 매우 적기 때문에 

(물론 데이터가 충분히 있다면 ok)

 

- machine translation

X-Y 쌍을 구하기 쉽기 때문에 end-to-end 잘 되는 편

 

- 엑스레이 이미지로 어린이의 나이를 예측하는 과제

이미지 입력 -> 뼈 분리 및 길이 계산 -> 나이 예측

이 경우 multi-step approach가 낫다: 엑스레이 이미지와 나이로 맵핑된 데이터가 많지 않음

 

 

Whether to use End-to-end Deep Learning

[장점]

- let data speak: 충분히 큰 네트워크라면 인간의 preconception의 구애를 받지 않고 $x$와 $y$에 대한 통계적 분석이 가능

예를 들어, speech recognition에서 음성을 음소 단위로 쪼개는데, 사실 음소는 인간이 만들어낸 개념이다 음소 개념에 맞춰 생각하게 만들지 않고 알아서 계산하게 하는 것

- less hand-designing of components needed : 워크플로우의 간소화

 

[단점]

- 데이터가 많이 필요하다 - 단계로 쪼갰을 때 단계별로는 데이터가 충분할 수 있음

- excludes potentially usful hand-designed components : 데이터 양이 충분하지 않을 때 알고리즘에 maunal knowledge를 주입하는 것이 도움이 될 때가 있음

 

[Applyying end-to-end deep learning]

Do you have sufficient data to learn a function of the complexity needed to map x to y?

- "complexity"를 명확하게 정의하긴 어렵지만 고려할 것

 

<자율주행 자동차의 예>

1) 차 앞의 이미지

2) object detection (보행자, 자동차, ...) (Deep Learning)

3) plan route (motion planning)

4) steering (control)

위처럼 individual component를 위해 deep learning을 활용할 수도 있다

 

- 딥러닝 학습시킨다고 할 때, 태스크에 따라 $x$와 $y$를 신중하게 결정

- end-to-end가 가장 promosing한 방법은 아님

'인공지능 > DLS' 카테고리의 다른 글

[4.1.] Convolutional Neural Networks(2)  (0) 2022.07.24
[4.1.] Convolutional Neural Networks(1)  (0) 2022.07.23
[3.2.] Learning from Multiple Tasks  (0) 2022.07.20
[3.2.] Mismatched Training and Dev/Test Set  (0) 2022.07.20
[3.2.] Error Analysis  (0) 2022.07.18
복사했습니다!