인공 지능(Artificial Intelligence)
인간이 행하고 있는 인지라든가 판단 등의 비교적 고도 기능을 컴퓨터와 같은 기계로 대신하게 하는 것을 목적
머신 러닝(machine learning: 기계학습)
인공 지능의 한 분야
많은 데이터를 컴퓨터로 취급하고자 할 때 : 배열 사용
데이터를 처리하여 판단에 연결하고자 할 때 : 확률, 통계를 사용
딥러닝(Deep Learning)
ILSVRC(ImageNet Large Scale Visual Recognition Challenge)의 2012년 대회에서 딥러닝에 바탕을 둔 AlexNet이 압도적인 성적으로 우승
(➔ 이미지 인식에 대한 접근법을 뿌리부터 흔듦 )
이미지넷 (ImageNet)
100만장이 넘는 이미지를 담고 있는 데이터셋
알파고(Alphago) 진화
AlphaGo Lee=> AlphaGo Master => AlphaGo Zero
TPU(Tensor Processing Unit)의 등장으로 빠른 발전 가능
딥러닝이 상용화가 가능하게 된 주된 요인
빅 데이터
GPU 성능 향상
머신 러닝(Machine Learning)
회귀(regression)
판매 총액과 가격, 흡연율과 폐암의 발병율 등 연속적인 데이터를 예측하는 것
분류(Classification)
학습 데이터에 값을 주고 목표를 정하여 학습을 행하는 것
클러스터링(clustering)
서로 비슷한 데이터를 묶어 놓는 것
비지도 학습 사용
머신 러닝의 종류
머신 러닝의 흐름
데이터 수집 => 데이터 가공 => 데이터 학습(1.학습 방법 선택, 2. 매개 변수 조정, 3. 모델 학습 조정) => 모델 평가
Python과 같은 동적 언어는 C나 C++와 같은 정적 언어(컴파일 언어)보다 처리 속도가 늦음
실제로 무거운 작업을 할 때는 C/C++로 작성한 프로그램을 쓰는 편이 좋음
그래서 파이썬에서 빠른 성능이 요구될 경우, 해당 부분을 C/C++로 구현함
퍼셉트론 알고리즘
퍼셉트론
- 다수의 신호를 입력으로 받아 하나의 신호를 출력
퍼셉트론이 신경망(딥 러닝= deep learning)의 기원이 되는 알고리즘
퍼셉트론의 구조는 AND, NAND, OR 게이트가 모두 동일 => XOR 안됨
퍼셉트론의 한계: 퍼셉트론은 직선 하나로 나눈 영역만 표현 가능
퍼셉트론의 강력한 특성 : 층(layer)를 쌓아 다층 퍼셉트론을 만들 수 있다는 점
퍼셉트론의 추가적인 한계 : 가중치를 설정하는 작업(원하는 결과를 출력하도록 가중치 값을 설정하는 작업)은 사람이
수동으로 한다는 점
========> 신경망(Neural Network)이 해결함
가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력 제공 : 신경망의 중요한 성질
신경망(Neural Network)
입력층(0층), 은닉층(1층), 출력층(2층)으로 구성
은닉층은 입력층, 출력층과 달리 사람의 눈에 보이지 않음
활성화 함수 (activation function)
입력 신호의 총합 => 출력 신호로 변환해 주는 함수
퍼셉트론에서 신경망으로 가는 길잡이
퍼셉트론 => 계단 함수(step function)
신경망 => 활성화 함수 (activation function)
활성화 함수로 시그모이드(혹은 ReLU) 함수를 이용하여 신호를 변환하고, 그 변환된 신호를 다음 뉴런에 전달
퍼셉트론과 주된 차이는 활성화 함수 밖에 없음
구분
선형 함수 : 1개의 직선으로 표시
=> 선형 함수의 문제는 층을 아무리 깊게 해도, “은닉층이 없는 네트워크"로도 동일한 기능을 할 수 있음
비선형 함수 : 선형 함수가 아닌 함수, 직선 1개로 그릴 수 없는 함수
==> 활성화 함수로 비선형 사용해야함
출력층의 활성화 함수는 𝜎(x)로 은닉층과 다르게 항등 함수(identity function) 사용
순전파(forward propagation) : 신호가 순방향(입력에서 출력 방향)으로 전달됨
응용 방식에 따라 출력층에서 사용하는 활성화 함수가 달라짐
회귀(regression) : 미지의 입력에 대한 출력 예측
활성화 함수 : 항등 함수(identity function) 사용
분류(classification): 데이터가 어느 클래스에 속하느냐 문제
2 클래스 분류 => 활성화 함수 : 시그모이드 함수(sigmoid function) 사용
다중 클래스 분류 => 활성화 함수 : 소프트맥스 함수(softmax function) 사용
소프트맥스 함수(softmax function)의 특징
출력이 0.0 ~1.0 사이의 실수
함수의 출력의 총합은 1.0 => 문제를 확률적(통계적)으로 대응할 수 있게 됨
기계 학습(machine learning) 문제
학습(learning) 단계
training 데이터 집합으로 모델을 학습(참고 : 직업 훈련)
아직 최종 출력을 생성하지 않으므로 출력층에 소프트맥스 함수를 사용
추론(inference) 단계
학습한 모델로 미지의 데이터에 대해 추론을 함
최종 출력을 생성해야 하므로 출력층에 소프트맥스 함수를 생략하여 사용
'수업정리 > 임베디드 시스템' 카테고리의 다른 글
ChatBot 이해 (0) | 2020.12.09 |
---|---|
라즈베리파이 OpenCV (0) | 2020.12.09 |
LAMP (0) | 2020.12.09 |
라즈베리파이 GPIO 디지털 입출력(Python) (0) | 2020.12.09 |
단위 표시 (0) | 2020.12.09 |