도입
역사 흐름대로 알려줌. 독자가 단순히 외우는 것보다 배경을 알아가면서 이해하기 위함.
전통적인 프로그래밍 vs 머신러닝
프로그래밍: 개발자가 문제를 해결하기 위해 알고리즘 구현
머신러닝: AI가 스스로 학습하며 문제 해결 알고리즘 직접 구현
def 프로그래밍_처리방식(algorithm: Algorithm, data: Data) -> Answers:
// ...Algorithm
return answers;
def 머신러닝의_처리방식(data: Data, answers: Answers) -> Algorithms:
// ... Data, Answers
return algorithms;
그렇다면 어떤 경우에 각 두 전략이 적합한가?
- 프로그래밍: 수식화/도식화하기 쉬운 경우
- 머신러닝: 수식화/도식화하기 어려운 경우, 많은 입출력 데이터가 있는 경우
예시:
- 프로그래밍: 학점 구하기(점수가 특정 학점의 경계에 있으면 해당 학점 반환)
- 머신러닝: 이미지를 보고 붓꽃 종 판별하기
어떻게 붓꽃으로 판별할까?
- 데이터(특성)
- 꽃받침 길이
- 꽃받침 넓이
- 꽃잎 길이
- 꽃잎 넓이
- 결과(label, class)
- 부채 붓꽃
- 블루플래그 붓꽃
- 버지니카 붓꽃
머신러닝을 통해서 무엇을 얻는가?
데이터에 대한 분류 능력이다.
무언가를 안다는 것은 그것을 분류할 수 있는 것이다.
-아리스토텔레스
전문적인 용어로 패턴인식이라고 한다.
패턴 인식: 이미 얻은 지식 또는 패턴 및 그 표현에서 추출된 통계 정보를 기반으로 데이터를 분류하는 것.
패턴 인식은 성능이 좋은 분류기(classifier)을 만드는 기술이다.
사람은 감과 지식으로 어떤 것을 분류하지만 기계는 힘들다. 머신러닝이 기계가 이를 가능케 해줌.
패턴인식은 어떻게 진행되는가?
- 데이터 수집: 우리는 어떻게 시스템 학습 및 테스트를 많고 대표적인 예제를 충분히 수집했다고 판단할 수 있을까.
- 특징성정의(핵심): 문제 영역의 특성에 따라 다름. 추출하기 쉽고 외부의 변화에 의존하지 않으며 노이즈에 민감하지 않은 특성을 정의하기.
- 모델 선택: 분류기의 성능에 만족하지 못하고 다른 분류 모델로 변경하려고 합니다.
- 분류기 훈련: 데이터를 사용하여 분류기를 결정한다. 분류기를 훈련하고 모델을 선택하는 여러가지 절차가 존재함.
- 분류기 평가: 오류율, 다른 특성 집합, 다른 훈련 방법, 다른 훈련 및 테스트 데이터 집합, 계산 복잡도 등을 측정한다.
패턴인식 방법은 다양하게 있지만 대부분 머신러닝 알고리즘이다.
정형 데이터와 비정형 데이터
- 정형: 구조화된
- 비정형: 구조화되지 않은
이라는 의미다. 비정형 데이터는 구조화되지 않아서 특성 정의가 힘들다.
정형 데이터 포맷:
- 엑셀(csv)
- json
비정형 데이터 포맷:
- string
- png, pdf, mp4(binaries)
## 비정형 데이터 인공지능 예시
- 객체 인식: 얼굴 인식, 글자 숫자 인식(OCR), 사물 인식
- 상황 인식: 범죄 상황 인식, 쓰레기 투시 인식, 교통사고 및 교통 혼잡 인식
- 모션 인식: 안면 인식, 행동 인식, 표정 인식
예시같은건 넘어가도 좋지만 우리가 집중해야할 부분은 비정형 데이터는 구조화되지 않아서 특징 정의가 힘들다는 것이다.
머신러닝 vs 딥러닝
머신러닝: 특성을 정의해주면 모델(알고리즘) 자동 생성함.
딥러닝: 특성 가공 과정을 생략해도 모델을 자동 생성함.
프로그래밍 vs 머신러닝 vs 딥러닝
- 프로그래밍: 데이터 수집 -> 특성 정의 -> 로직 작성 -> 로직 테스트
- 머신러닝: 데이터 수집 -> 특성 정의 -> 모델 학습 -> 모델 테스트
- 딥러닝: 데이터 수집 -> 특성 정의(자동화) -> 모델 학습 -> 모델 테스트
지도학습 vs 비지도 학습
지도학습: 라벨이 붙여진 데이터 세트를 사용하여 데이터를 분류 혹은 결과를 정확하게 예측하는 알고리즘 훈련
비지도 학습: 라벨이 붙여지지 않은 데이터 세트를 분석하고 군집화함. 몰랐던 특성 또는 데이터 그룹 발견 가능.
기계 학습은 딥러닝의 슈퍼셋이다.
전통적인 기계학습과 딥러닝
전통적인 기계학습은 컴퓨터가 데이터로부터 학습할 때 가르키는 일반적인 용어.
알고리즘이 명시적으로 프로그래밍되어 있지 않고 특정 작업을 수행하기 위해 사용되는 컴퓨터 과학과 통계의 접점에 이씅ㅁ.
데이터 패턴을 인식으로 새로운 데이터에 대해서 예측함.
컴퓨터는 정형 데이터를 공급받으며 시간이 지남에 따라 해당 데이터를 더 잘 평가하고 행동하도록 학습함.
기계학습은 한번 프로그래밍 되면 새로운 정형 데이터를 무한정 받아들일 수 있으며 인간의 개입 없이 처리할 수 있음.
다만 한계는 명확하다. 여전히 기계처럼 생각하고 스스로 특성들을 추출할 수 없다.
딥러닝 모델은 기계 학습에 대한 매우 정교한 문제 접근 방식을 도입하고 문제를 해결하기 위해 인간의 뇌를 모델로 하고 구현되었다. 복합하고 다층적인 "심층 신경 네트워크"는 데이터가 고도로 연결된 방식으로 노드간 전달된다.
딥러닝 알고리즘은 특성(Features)을 식별하기 위해 SW엔지니어가 필요하지 않으며 자동 특성 공학이 가능하다.
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com