[MLY 번역]
Andrew ng의 Machine Learning Yearning을 번역한 글입니다. 중간중간 실험가능한 내용이 있을 경우 c++ 혹은 tensorflow를 이용한 실험과 함께 업로드할 예정입니다. 일주일에 2회, 회당 5개씩 업로드될 예정입니다.
번역: 정주안
1.Why Machine Learning Strategy
머신러닝은 웹 검색도구, 스팸 방지 기술, 음성 인식, 제품 추천등 셀 수 없을 정도로 많은 어플리케이션들의 기반이 되는 기술이다. 여러분은 아마도 이러한 머신러닝 어플리케이션을 만들고 싶어 이 글을 읽고 있을 것이고, 되도록이면 빠르게 진전시키고 싶을 것이다. 이 책은 그런 여러분들을 위한 글로 구성되어있다.
예제: 고양이 사진 프로젝트
여러분들이 고양이라면 죽고 못사는 사람들에게 무한한 고양이 사진들을 제공해주는 프로젝트를 시작했다고 해보자.
사진속에서 고양이가 있는 지 확인하기 위한 컴퓨터 비젼 시스템을 구축하기 위해 인공 신경망을 이용하기로 하자.
아쉽게도 여러분의 학습 알고리즘의 정확성은 아직 만족스럽지 않다. 하지만 여러분은 고양이 감지 시스템을 개선하라는 엄청난 압박속에 있다. 그렇다면 무엇을 먼저 해야할까?
여러분은 다음과 같은, 여러가지 아이디어가 있을 수 있다.
- 더 많은 데이터 수집: 더 많은 고양이 사진들을 수집하기
- 더 다양한 트레이닝 셋 수집하기: 예를 들어 독특한 자세 혹은 색깔의 고양이 사진이나 다양한 카메라 환경의 사진들을 수집할 수 있다
- 여러분의 알고리즘을 그래디언트 디센트(gradient descent) 학습을 통해 좀 더 오래, 많이 반복 학습하기
- 더 크고 깊은 인공 신경망 이용하기
- 더 작은 인공 신경망 이용하기: 데이터의 특성에 따라 오히려 작은 네트워크가 유효할 수 있다!
- 정규화(Regularization) 사용: L2 정규화등을 이용해보기
- 인공 신경망의 구조를 변경해보기: 이때 사용가능한 변수는 활성화 함수(activation function), 여러 히든 유닛등이 있다
- …
여러분이 이 방법들중에서 적절한 해결책을 선택한다면, 괜찮은 고양이 사진 플랫폼을 만들 수 있을 것이고, 여러분의 회사는 승승장구할 것이다. 하지만 해결책이 잘못되었다면 많은 기간을 버리게 될 것이다. 여러분은 어떻게 선택할 수 있을까?
이 책은 그 ‘어떻게’를 알려줄 것이다. 머신러닝 시스템에서 발생하는 많은 문제들 대부분은 어떤 방법이 적절할 지, 어떤 방법이 부적절할 지 알 수 있는 단서를 남겨준다. 이 단서들을 알 수 있는 방법을 배우는 것이 여러분의 개발 기간을 몇개월, 혹은 몇년까지도 단축시켜줄 것이다.