딥러닝이란?
- 심층신경망(Deep Neural Network, DNN)을 학습시켜 문제를 해결하는 방법
- 심층신경망이란, 인공신경망(Artificial Neural Network, ANN)의 한 종류라고 볼 수 있다. 인공신경망을 구성하는 신경망 계층을 기존에 비해 더 깊게 구성하여 복잡한 문제를 풀 수 있도록 하는 것
- 여러 가지 수학적 테크닉이 가미되어 과거에는 학습시킬 수 없었던 깊은 신경망을 학습 시킬수 있게 되었다.
- 인터넷과 모바일 기기의 발달로 빅데이터가 널리 활용됨에 따라 이를 통해 심층 신경망을 학습시킬만한 충분한 데이터를 확보할 수 있게 되었다.
- GPU의 발달로 병렬연산(parallel operation)에 대한 방법이 대중화되며 신경망의 학습 및 추론 속도가 비약적으로 상승하였다.
좋은 인공지능이란?
- 인공지능 모델이란?
- 인공지능모델은 x가 입력으로 주어졌을 때 y를 출력하여 반환하는 함수라고 할 수 있다/
- $y = f(x)$
- 이때 함수가 어떻게 동작할지 정해놓은 내용을 파라미터(weight parameter) $\theta$ 라고 한다.
- 학습이란 수집된 데이터x와 y 쌍을 통해 함수 f가 x로부터 y로 가는 관계를 배우는 것을 의미한다.
- x와 y를 통해 함수의 동장 방식 파라미터 $\theta$를 찾아내는 과정
- 하나의 의견이지만, 일반화를 잘하는 모델이 좋은 인공지능 모델이라고 할 수 있을 것 같다.
- 여기서 일반화란 보지 못한 데이터에 대해서 좋은 예측을 하는 것
머신러닝 프로젝트 워크플로
- 일반적인 머신러닝 프로젝트의 진행 순서
- 문제 정의
- 단계를 나누고 simplify
- x와 y를 정의
- 데이터 수집
- 문제 정의에 따른 수집
- 필요에 따라 레이블링
- 데이터 전처리 및 분석
- 형태를 가공
- 필요에 따라 EDA 수행
- 알고리즘 적용
- 가설을 세우고 구현/적용
- 평가
- 실험 설계
- 테스트셋 구성
- 배포
- Restful API를 통한 배포
- 상황에 따라 유지/보수