|
|
1. 딥러닝 알고리즘의 자세한 내용을 조사하라.
- 딥러닝 알고리즘은 사람의 개입이 필요하지 은 능동적인 비지도학습과 결합되어 컴퓨터가 마치 사람처럼 스스로 학습할 수 있는 인공지능이다.
▶ 딥러닝 알고리즘 종류
(1) 심층 신경망(DNN, Deep Neural Network)
- 입력층과 출력층 사이에 다중의 은닉층을 포함하는 인공신경망
- 다중의 은닉층은 포함하여 다양한 비선형적 관계를 학습할 수 있지만 학습을 위한 많은 연산량과 과하게 학습하여 실제 데이터에 대해 오차가 증가하는 과적합, 기울기 값의 소실 문제 등이 발생할 수 있다.
(2) 합성곱 신경망(CNN, Convoultional Neural Network)
- 최소한의 전처리를 사용하도록 설계된 다계층 퍼셉트론의 한 종류임.
- 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있고, 가중치와 통 계층들을 추가로 활용한다.
=> 이러한 구조로 인해 2차원 구조의 입력 데이터틀 충분히 할용할 수 있음.
(3) 순환 신경망(RNN, Recurrent Neural Network)
- 인공신경망을 구성하는 유닛 사이의 연결이 지시 회로를 구성하는 신경망을 말함.
- RNN은 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있는데 이러한 특성에 의해 필기체 인식과 같은 분야에 활용되고 있고 높은 인식률을 나타낸다.
- 동일한 태스크를 한 시퀀스의 모든 요소마다 적용하고, 출력 결과는 이전의 계산 결과에 영향을 받기 때문에 RNN은 순차적인 정보를 처리하는 데에 기본을 둔다.
(4) 제한 볼츠만 머신(RBM, Restricted Boltzmann Machine)
- 볼츠만 머신에서 중간연결을 없앤 형태의 모델로, 층간 연결을 없애면 머신은 가시 유닛과 은닉 유닛으로 이루어진 무방향 이분 그래프 형태의 모양이 된다.
=> 모델의 층간 연결을 없앰으로써 뉴럴 네트워크는 깊어질 수 있음. 가장 큰 장점은 가시 유닛이 관찰되고 고정되었을 때 은닉 유닛을 추론하는 MCMC(Markov Chain Monte Carlo)과정이 단 한 번에 끝난다는 것임.
- RBM은 DBN(심층 신뢰 신경망)의 기본 뼈대가 되는데, RBM을 쌓아올리면서 학습함으로써 DBN을 완성한다. RBM은 방향성이 없지만 DBN은 RBM이 쌓이면서 다층이 되는것이 아니라서 방향성을 가지게 된다.
(5) 심층 신뢰 신경망(DBN, Deep Belief Network)
- 머신러닝에서 사용되는 그래프 생성 모형으로, 딥러닝에서는 잠재변수의 다중계층으로 이루어진 심층신경망을 의미함. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있음
- DBN은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행 학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다.
=> 훈련용 데이터가 적을 때 굉장히 유용하고, 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 커짐.
2. 딥러닝이 기존의 오차(오류) 역전파알고리즘의 문제점을 어떻게 해결했는지 설명하라.
● 기울기 소실 문제
- 역전파 알고리즘에서 손실함수의 그래디언트가 깊은 신경망의 초깊은 층으로 전파될때 값이 점점 작아지면서 0에 수렴하는 문제가 발생하였는데, 딥러닝에서 ReLU(Rectified Linear Unit) 활성화 함수를 사용하여 음수에서는 0, 양수에서는 그대로 출력하여 기울기가 0으로 소실되지 않게 한다.
● 과적합 문제
- 심층 신경망은 과적합이 발생하기 쉽다. Dropout기법으로 학습 과정에서 랜덤하게 일부 뉴런을 제외(비활성화)시켜 네트워크가 특정 뉴런이나 가중치에 지나치게 의존하지 않도록 하고, 매 학습 반복(epoch)마다 서로 다른 서브네트워크를 학습시키는 효과를 가져 과적합 문제가 발생하지 않게 한다.
● 가중치 초기화 문제
- RBM은 비지도 사전학습 방법으로 심층 신경망의 가중치를 초기화하는 데 사용된다. RBM은 입력데이터를 학습하여 잠재표현을 학습한 후 이를 기반으로 신경망의 초기 가중치를 설정한다. 이 과정을 반복하여 심층 신경망의 각 층을 점진적으로 학습하는 심층 신뢰 네트워크를 형성하여 가중치 초기화 문제를 해결한다.
3. 딥러닝과 기존의 머신러닝의 차이를 설명하라.
| 머신러닝 | 딥러닝 | |
| 데이터 크기 | 작은 데이터 집합에 좋은 결과 | 매우 큰 데이터 집합에 좋은 결과 |
| 처리하는 컴퓨터 | 학습 시간이 짧아 일반 컴퓨터 | 매우 오래 걸리므로 강력한 컴퓨터 |
| 특징 추출의 방법 | 최상의 결과를 위해 여러 가지 특징 추출과 분류 방법 시도 | 특징 추출과 분류가 자동적으로 처리 가능 |
| 처리시간 | 몇 분에서 몇 시간 정도 | 경우에 따라 몇 주까지도 걸림 |
| 알고리즘의 종류 | 다양하고 많음 | 현재는 적으나 많이 개발 중임 |
- 머신러닝은 사람이 훈련 데이터를 생성하거나 데이터의 특징을 추출하는 등으로 어느 정도 개입하지만 딥러닝은 훈련 데이터만 생성해주면 인간의 개입없이 중요한 특징을 직접 추출히야 인간의 개입 없이 컴퓨터 스스로 학습한다.
- 딥러닝은 머신러닝과 다르게 심층신경망(DNN)을 이용하여 입력 데이터에서 특징을 추출하고 스스로 결과를 도출한다.
4. 가장 많이 사용되는 DNN의 종류로서 CNN, RNN, GAN이 있다. 각각을 자세히 설명하고 각 기술이 적용된 실제 제품사례를 조사하라.
▶ CNN(합성곱신경망 : Convolution Neural Network)
- CNN은 데이터 특징을 추출하여 특징들의 패턴을 파악하는 구조이다. CNN은 사람의 시신경 구조를 모방한 것으로, 데이터를 특징으로 추출하여 이 특징 추출은 컨볼루션 과정과 풀링 과정을 통해 진행된다.
● Convolution
: 데이터를 추출하는 과정으로 데이터에 각 성분의 인접 성분을 조사해 특징을 파악한다. 여기서 도출된 특징을 추상화하여 특정 층으로 압축하며 이렇게 도출된 층을 Convolution Layer라고 부른다.
● Pooling
: Convolution 과정을 거친 Layer의 사이즈를 줄이는 과정. 데이터 사이즈를 줄여 노이즈를 없애고 일괄적인 feature를 제공한다. 보통 Convolution 과정에서 만들어진 feature의 가장 큰 값만 가져와 사이즈를 줄이는 것을 max pooling이라고 한다.
- 이미지 처리에 특화된 딥러닝 모델로 의료 영상 분석, 자율주행 자동차, 얼굴 인식 등에 사용된다.
▶ RNN(순환신경망: Recurrent Neural Network)
: 입출력을 시퀀스 단위로 처리하는 시퀀스 모델
- RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로 보내고, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징이 있음.
=> 이 순환구조를 이용하여 과거의 학습을 W(weight)를 통해 현재 학습에 반영한다.
=> 기존의 지속적이고 반복적이며 순차적인 데이터 학습의 한계를 해결한 알고리즘으로, 현재의 학습과 과거의 학습의 연결이 가능함.
- RNN은 시계열 데이터나 순차 데이터를 처리하는데 특화된 딥러닝 모델로, 자연어 처리, 음성 인식 및 합성, 동영상 분석 등에 사용된다.
▶ GAN(생산적 적대 신경망: Generative Adversarial Network)
● GAN 구조
- 생성자(Generator)
: 무작위 노이즈(랜덤 벡터)를 입력으로 받아 진짜처럼 보이는 데이터를 생성하는 역할을 함
=> 판별자를 속일 만큼 현실적인 데이터를 생성하는 것.
- 판별자(Discriminator)
: 입력 데이터를 보고 진짜인지 가짜인지 판단하는 역할을 함
- 새로운 데이터를 생성하기 위해 두 개의 신경망인 생성자(Generator)와 판별자(Discriminator)가 서로 경쟁하며 학습하는 딥러닝 모델.
- 생성자는 가짜 데이터를 만들고, 판별자는 그것이 진짜인지 가짜인지 구분하며 판별자가 fake sample과 real sample을 구별하지 못하는 수준까지 학습한다.
-GNN은 데이터를 생성하는데 특화된 딥러닝 모델로, 이미지 생성 및 변환, 게임 개발 등에 사용된다.
5. 딥러닝 프레임워크의 정의, 종류, 특징에 대하여 조사하라.
- 이미 검증된 수많은 라이브러리와 사전 학습까지 완료된 다양한 딥러닝 알고리즘을 제공해주어 개발자가 이를 빠르고 손쉽게 사용할 수 있도록 하는 것이다. 딥러닝 프레임워크를 통해 중복적인 기능을 구현해야 하는 소모적인 작업으부터 개발자를 해방시키고 문제 해결을 위한 핵심 알고리즘 개발에만 집중할 수 있도록 도와준다.
▶ 딥러닝 프레임워크 종류
(1) Theano
- 최소의 딥러닝 라이브러리 중 하나로 파이썬 기반이며 CPU 및 GPU의 수치계산에 매우 유용한 선형대수 심벌 컴파일로서 미분, 선형대수 계산을 포함해 Symbolic expression을 통한 정의된 수식을 사람처럼 미분하거나 재정리해서 전체 계산에 대한 최적의 계산 경로를 찾아내는 소프트웨어
(2) 텐서플로(TensorFlow)
-가장 인기 있는 딥러닝 라이브러리 중 하나인 텐서플로는 구글팀에서 개발했으며 2015년 오픈소스로 공개됨.
- 2세대 머신러닝 시스템으로도 불리는 텐서플로는 파이썬(Python) 기반 라이브러리로 여러 CPU 및 GPU와 모든 플랫폼, 데스크톱 및 모바일에서 사용할 수 있다. 다른 프레임워크에 비해 속도가 느린 편이며, 스칼라(Scala) 언어는 지원하지 않는다.
- Theano와 마찬가지로 텐서플로는 저수준 라이브러리로 딥러닝 모델을 직접 만들거나 그 위에 래버 라이브러리를 사용하여 프로세스를 단순화 할 수 있음. 텐서플로우는 C/C++ 엔진에 파이썬 API로 제작되어 빠른 실행이 가능하며, 딥러닝 알고리즘뿐만 아니라 강화 학습을 위한 다양한 알고리즘도 같이 지원하고 있다. 또한, 텐서보드(TensorBoard)라는 모델 가상화 도구를 제공하여 모델을 손쉽게 시각화할 수 있다.
(3) 케라스(Keras)
- 케라스는 Theano 또는 텐서플로에서 작동하도록 구성할 수 있고 백엔드(back-end)로 사용하며, 토치(Torch)와 같이 직관적인 API를 제공함.
- 파이썬으로 제작되어 매우 가볍고 배우기도 쉬우며, 빠른 업데이트로 다양한 계층에서 빠른 속도로 발전하고 있는 차세대 딥러닝 프레임워크라고 할 수 있음. 비교적 새로운 라이브러리임에도 불구하고 아주 좋은 문서를 가지고 있으며, 몇 줄의 코드에서 케라스를 사용하여 신경망을 만들 수 있음.
(4) 토치(Torch)
- 토치는 루아(Lua)라는 스크립트 언어를 기반으로 제작된 딥러닝 프레임워크로 페이스북, 구글 등과 같은 대기업에서도 토치를 기반으로 하는 자체 버전을 별도로 개발하여 사용하고 있을 정도로 효율적인 프레임워크임.
- 최대한의 유연성을 달성하고 모델을 제작하는 과정을 매우 간단하게 만드는 것을 목표로 만들어졌으며 강화 학습에 필요한 사전 학습된 다양한 라이브러리를 제공해 줌.
-----------------------------------------------------추가된 내용------------------------------------------------------
1. 퍼셉트론
- 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다.
- 퍼셉트론 구조는 기본적으로 다수의 입력으로부터 가중합을 이용하여 하나의 출력을 만들어내는 구조이다.
2. 다층퍼셉트론
- 기본적인 퍼셉트론은 선형분리 분류 문제에만 사용가능하지만 다층퍼셉트론은 입력과 출력 사이에 여러 개의 은닉층을 추가하여 해결할 수 있다. 다층 퍼셉트론은 하나 이상의 은닉층을 가진 퍼셉트론이다.
- 모든 노드가 서로 완전히 연결된 구조이고, 순방향(입력층-->출력층)으로만 신호가 전달된다. 같은 층의 노드 사이의 연결은 없다.
3. 심층신경망(deep neural netowrk, dnn)
- 은닉칭이 2개 이상을 가진 인공신경망을 심층 신경망이라고 한다.
- DNN의 종류로는 합성곱 신경망(CNN), 순환신경망(RNN), 생산적 적대 신경망(GAN)이 있다.
4. 딥러닝
- 심층 신경망을 학습시키는 알고리즘. 머신러닝의 오차 역전파 알고리즘의 문제점을 해결하였다. 머신러닝보다 더 깊게 학습하는 알고리즘.
5. 심층신경망 종류와 용도
- 합성곱 신경망(CNN)
: 영상을 입력으로 사용하는 영상 분류, 객체 검출, 영상 분할 등의 분야에서 사용
- 순환신경망(RNN)
: 시계열 데이터의 인식에 특화된 DNN의 한 종류로 연어 번역기, 음성 인식, 심전도신호분석, 주가 예측 등에 사용.
- 생산적 적대 신경망(GAN)
: 학습된 패턴을 이용하여 영상과 음성의 생성과 복원 가능, 그림 그리기, 글쓰기 음악 작곡 등에 사용

첫댓글 다음 용어를 설명하시오.
퍼셉트론, 다층퍼셉트론, 심층신경망(deep neural netowrk, dnn), 딥러닝, 심층신경망 종류와 용도
추가 수정 하였습니다.