상세 컨텐츠

본문 제목

[K-DIGITAL] 머신러닝을 넘어 딥러닝으로

PYTHON/K-DIGITAL

by ranlan 2021. 7. 14. 17:22

본문

728x90

멋쟁이사자처럼 X K-DIGITAL Training - 07.13

 

 

[이전] 2021.06.28 - [python/k-digital] - [K-DIGITAL] 인공지능과 머신러닝

 

[K-DIGITAL] 인공지능과 머신러닝

인공지능 (Artificial Intelligence, AI) 인공지능이란  Artificial intelligence(AI), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intell..

juran-devblog.tistory.com

 

 

딥러닝 (Deep Learning)

컴퓨터가 사람처럼 생각하고 배울 수 있도록 하는 인공지능 기술

인간의 인공신경망에서 발전한 형태의 인공지능으로 뇌의 뉴런과 유사하게 정보 입출력 계층을 활용해 데이터 학습

 

전통적인 머신러닝(machine learning) : 사람이 직접 feature selection 해야함

딥러닝(deep learning): 신경망 내부에서 자체적으로 데이터의 중요한 feature 선택하거나 구성, 알아서 feature selection

                                     * 모든 전처리를 하는 것은 아님

                                        결측치 채움, outlier 제거, data merging, scaling, one-hot vetorize 등은 직접 처리해야함)

 

많은 양의 정답이 달린 데이터 필요

-> 데이터 증강(Data Augmentation) : 적은 양의 데이터를 다양한 알고리즘에 거쳐 데이터 양을 늘리는 기술

대표 알고리즘) SMOTE(synthetic minority oversampling technique)

- 합성 소수 샘플링 기술, 다수 클래스를 샘플링하고 기존 소수 샘플을 보간하여 새로운 소수 인스턴스를 합성

 

Deep Neural Network(DNN)를 활용하여 학습하는 머신러닝 알고리즘 -> hidden layer가 2개 이상

 

▷ single-layer perceptron (단층 퍼셉트론)

뉴런을 본따 만든 알고리즘 하나의 단위

1) 넘겨져 온 데이터와 θ들의 선형 결합(linear combination) 계산 - 합 또는 곱

2) 선형 결합의 결과에 활성화 함수(activation function) 적용하여 비선형성 도입

3) 예측값과 결과를 비교하여 계속하여 오차를 줄여나감

→ 가장 적합한 θ들의 set을 찾는 것이 목표!

 

* y값의 형태 

- 1개 > sigmoid > (threshold 정하여 이진 분류) binary classificatation

- 2개 > softmax alg > k-class classification (멀티클래스 분류)

 

활성화 함수 (Activation Function)

이전 레이어의 모든 입력에 대한 가중 합(선형 결합)을 받아 출력 값을 생성하여 다음 레이어로 전달하는 비선형 함수

(Tanh, ReLU가 가장 많이 사용됨, 그 중 ReLU)

 

기존의 퍼셉트론으로는 AND, OR 문제 해결 가능

[AND]

AND

[OR]

OR

 

 

▷ multi-layer perceptron (MLP, 다층 퍼셉트론)

복수의 퍼셉트론 연결하여 XOR 판별식 등 해결

 

인공 신경망 (Artificial Neural Network)

퍼셉트론을 모은 layer를 깊이 방향으로 쌓아 복잡한 모델을 만들어 모다 어려운 문제를 풀어낼 수 있음

MLP도 일종의 ANN

 

 

오차 역전파 알고리즘 (Back Propagation Algorithm)

신경망의 효율적인 학습방법

학습된 출력 값과 실제 값의 차이인 오차를 계산하여 반대 방향으로 전파(propagation)하는 알고리즘

layer가 복잡해질수록 연산이 복잡해져 효율이 떨어지는 문제 해결하기 위해 등장

forward 방향으로 연산한 다음 그 결과값(cost)를 역방향(backward)으로 전달하며 parameter update

모델이 틀린 정도를 역방향으로 전달하며 미분하고 곱하고 더하는 것을 반복, 파라미터(θ) 갱신

 

Vanishing Gradient

레이어가 깊어질수록 앞선 오차값이 역방향으로 뒤까지 전달되지 않는 문제 발생

예) 미분의 최대값이 0.25인 sigmoid 적용 시 역방향으로 0.25보다 작은 값을 곱하고 더해가며 오차값이 사그라들어 버림

     이로인해 속도 저하 혹은 학습이 중지됨

→ 활성화 함수로 ReLU function 적용하며 해결됨 (학습이 잘되고 속도가 빠름)

 


 

 CPU / GPU  ( ++ DPU, TPU) 

 

“옥타코어 CPU는 속도가 빠른 8대의 비행기로 짐을 실어 나르는 것에 비유할 수 있고, GPU는 속도는 느리지만 1000대의 기차로 짐을 실어나르는 것에 비유할 수 있다”

-> 처리해야 할 명령어와 데이터 성격에 따라 때로는 CPU, 때로는 GPU가 빠를 수 있다.

 

* 산술 논리 장치(Arithmetic Logic Unit, ALU)

덧셈, 뺄셈 같은 두 숫자의 산술연산과 배타적 논리합, 논리곱, 논리합 같은 논리연산을 계산하는 디지털 회로

CPU, GPU의 기본 설계 블록

 

CPU (Central Processing Unit)

입력받은 명령을 해석, 연산 후 이를 통해 얻은 결과값을 출력 장치로 전달하는 컴퓨터의 주요 부품

클럭(동작속도)의 수치, 코어(핵심 회로)의 수, 캐시 메모리의 용량으로 성능 확인

명령어가 입력된 순서대로 데이터를 처리하는 직렬(순차) 처리 방식에 특화된 구조

내부 면적의 절반 이상이 캐시로 채워져 있기 때문에 GPU에 비해 상대적으로 ALU(Arithmetic Logic Unit)가 차지할 수 있는 공간이 적음

* 고정소수점 데이터를 많이 사용하는 인터넷 서핑, 문서 작성 등 일상생활의 작업을 보다 바르게 수행하도록 설계

 

GPI (Graphic Processing Unit)

그래픽 처리 장치

최근에는 이외의 범용 작업에도 GPU의 처리 능력을 보태는 GPGPU(General Purpose computing on  Graphics Processing Unit) 기술 발전

성능 기준은 CPU와 동일

여러 명령을 동시에 처리하는 병렬 연산에 특화된 구조

캐시 메모리 비중이 크지 않고 연산할 수 있는 ALU 개수가 많음

* CPU로 시간이 많이 걸리는 멀티미디어(3차원 그래픽, 사운드)를 잘 수행할 수 있도록 설계

* 이런 병렬처리의 우수성을 딥러닝에 적용할 수 있다.

 

DPU (Data Processing Unit)

NVIDIA에서 발표

업계 표준의 소프트웨어 프로그래밍 가능 멀티코어 중앙처리장치(CPU)

효율적인 데이터 처리

고성능 네트워크 인터페이스로 데이터 파싱, 데이터 처리, 전송 가능

프로그래밍 가능한 가속화 엔진으로 인공지능(AI), 딥러닝, 머신러닝, 보안, 데이터 저장 등을 위한 애플리케이션 성능 향상

 

TPU (Tensor Processing Unit)

구글에서 발표한 데이터 분석 및 딥러닝용 하드웨어

벡터, 행렬 연산의 병렬처리에 특화

 

 

 

 

 

 

728x90

관련글 더보기

댓글 영역