공부중
[딥러닝] 본문
1.
- Descent (하강): 일반적으로 'gradient descent' (경사 하강법)과 같은 맥락에서 사용되는 용어로, 최소화하고자 하는 함수의 기울기(경사)를 따라 하강하여 최소값을 찾는 과정을 나타냅니다.
- Saddle Point (안장점): 함수의 특정 지점에서, 이 지점이 어떤 방향에서는 최소점이지만 다른 방향에서는 최대점인 포인트를 의미합니다. 신경망에서는 최적화 과정 중 이러한 포인트에서 매개변수가 갇히는 것을 피해야 합니다.
- Optimization (최적화): 신경망에서는 손실 함수의 값을 최소화하는 매개변수의 값을 찾는 과정을 의미합니다. 이 과정은 다양한 최적화 기법을 통해 수행되며, 학습의 핵심 과정입니다.
- Xavier (자비에 초기화): 신경망의 가중치를 초기화하는 방법 중 하나로, 각 층의 입력과 출력 뉴런 수에 기초하여 가중치의 규모를 조정함으로써 효율적인 학습을 돕는 초기화 기법입니다.
2.
- Adam (Adaptive Moment Estimation)
- Adam은 기계 학습에서 널리 사용되는 최적화 알고리즘입니다. Momentum과 RMSProp의( AdaGrad )개념을 결합하여 개발되었습니다. Adam은 첫 번째 모멘트(평균)와 두 번째 모멘트(분산)의 추정을 모두 사용하여 매개변수의 업데이트를 조정합니다. 이는 매개변수 공간을 효율적으로 탐색하면서도 안정적인 수렴을 도모하는 장점을 가지고 있습니다.
- SGD (Stochastic Gradient Descent)
- 확률적 경사 하강법(SGD)은 최적화의 가장 기본적인 형태로, 각 스텝에서 무작위로 선택된 하나의 데이터 샘플 또는 미니배치를 사용하여 가중치를 업데이트합니다. 이 방식은 계산 비용이 비교적 낮으며, 대규모 데이터셋에서도 효과적으로 사용할 수 있습니다.
- RMS (Root Mean Square Propagation)
- RMSProp은 AdaGrad의 개선된 버전으로, 학습 과정에서 학습률이 너무 빨리 감소하는 문제를 해결하기 위해 고안되었습니다. RMSProp는 가중치 업데이트 시 최근의 그라디언트만을 고려하여 학습률을 조절하므로, 각 매개변수에 대해 다른 크기의 업데이트를 적용할 수 있습니다. 이 선택지는 실제로 'RMSProp'으로 불려야 올바른 이름이 됩니다.
- Flatten
- Flatten은 데이터 처리 또는 신경망의 레이어에서 사용되는 용어로, 다차원 배열을 1차원 배열로 평탄화하는 과정을 말합니다. 예를 들어, 신경망에서 이미지를 처리할 때 컨볼루션 레이어 후에 Flatten 레이어를 사용하여 출력을 완전 연결 레이어(Fully Connected Layer)로 전달하기 전에 1차원 배열로 변환합니다. 이 과정은 다차원 특성 맵을 단일 벡터로 변환하여 다음 레이어의 입력으로 사용할 수 있게 합니다.
3.
- 오버플로우 (Overflow)
- 오버플로우는 컴퓨터 프로그래밍에서 변수가 허용하는 최대값을 초과하여 데이터가 올바르게 저장되지 않는 상황을 말합니다. 이는 주로 정수형 변수에서 발생하며, 결과값이 예상치 못하게 매우 작거나 반대의 값이 될 수 있습니다. 오버플로우는 특히 비트 수가 제한된 환경에서 자주 발생합니다.
- 오버라이딩 (Overriding)
- 오버라이딩은 객체지향 프로그래밍에서 자식 클래스가 부모 클래스로부터 상속받은 메소드를 재정의(덮어쓰기)하여 자신의 동작을 맞춤 설정하는 기능입니다. 오버라이딩을 사용하면 동일한 메소드 호출에 대해 다른 클래스의 객체들이 서로 다른 행동을 할 수 있습니다.
- 오버로딩 (Overloading)
- 오버로딩 또한 객체지향 프로그래밍 개념 중 하나로, 같은 이름의 메소드나 함수를 매개변수의 유형이나 개수를 달리하여 여러 버전으로 정의하는 것을 말합니다. 이를 통해 다양한 입력에 대해 같은 함수 이름으로 여러 기능을 수행할 수 있습니다. 오버로딩은 컴파일 시에 결정됩니다.
- 오버피팅 (Overfitting)
- 오버피팅은 기계학습에서 모델이 훈련 데이터에 너무 잘 맞춰져서 일반화 성능이 떨어지는 현상을 말합니다. 즉, 훈련 데이터에는 높은 성능을 보이지만 새로운 데이터나 테스트 데이터에는 성능이 저하되는 문제입니다. 오버피팅은 매개변수가 많고 복잡한 모델에서 빈번하게 발생하며, 훈련 데이터가 적은 경우에도 발생할 수 있습니다.
5.
- 데이터를 입력받아 가중치와 편향 연산 - 신경망에 입력 데이터가 들어와서 초기 설정된 가중치와 편향을 사용하여 연산이 수행됩니다.
- 최종 항등함수 또는 소프트맥스 통한 결과 출력 - 연산 결과를 기반으로 최종 출력층에서 항등 함수나 소프트맥스 함수를 통해 결과를 출력합니다.
- 예측값과 실제값의 차이를 계산 - 출력된 결과와 실제 값과의 차이(손실)를 계산합니다.
- 각각의 가중치와 편향에 대하여 미분 후 갱신 - 손실 함수를 가중치와 편향에 대해 미분하여 기울기를 구하고, 이를 통해 가중치와 편향을 업데이트합니다.
- 해당 과정을 계속 반복 - 데이터셋에 대하여 이 과정을 반복하며 가중치를 최적화합니다.
6.
CNN (Convolutional Neural Network, 컨볼루션 신경망)
CNN은 주로 이미지나 비디오 데이터를 처리할 때 사용되는 심층 신경망 구조입니다. 이 구조는 시각적 패턴을 효율적으로 인식하고 분류할 수 있는 특징을 갖추고 있습니다. CNN은 여러 계층을 거쳐 입력 이미지에서 점차적으로 고수준의 특징을 추출하며, 주로 다음 세 종류의 계층으로 구성됩니다:
- 컨볼루션 계층 (Convolutional Layer): 입력 이미지에 여러 필터를 적용하여 이미지의 특정 특징을 감지합니다. 이 필터는 엣지, 색상, 질감 등을 인식할 수 있으며, 이 계층을 거칠수록 더 복잡한 특징을 감지하게 됩니다.
- 풀링 계층 (Pooling Layer): 컨볼루션 계층의 출력을 다운샘플링하여 차원을 축소시킵니다. 이는 계산 부하를 줄이고, 과적합을 방지하는 데 도움을 줍니다. 가장 흔히 사용되는 풀링 방법은 최대 풀링(Max Pooling)입니다.
- 완전 연결 계층 (Fully Connected Layer): 마지막 단계에서 모든 특징을 하나의 벡터로 펼친 후, 하나 또는 여러 개의 완전 연결 계층을 사용하여 최종 분류를 수행합니다.
CNN은 특히 패턴이 시각적으로 변하지 않는 문제에서 강력한 성능을 발휘합니다. 예를 들어, 얼굴 인식, 자동차 번호판 인식 등에 널리 사용됩니다.
RNN (Recurrent Neural Network, 순환 신경망)
RNN은 시퀀스 데이터를 처리하는 데 특화된 신경망 구조입니다. 이는 시계열 데이터나 자연어와 같이 시간적으로 연속적인 데이터를 다루는 데 적합합니다. RNN의 핵심은 과거 정보를 현재의 결정에 활용할 수 있는 '메모리' 기능을 가지고 있다는 점입니다.
RNN의 주요 특징은 각 노드(유닛)가 시간적으로 이전의 정보를 받아 현재의 출력에 반영한다는 것입니다. 이를 통해 RNN은 다음과 같은 과정을 통해 정보를 처리합니다:
- 순환 연결: 각 시간 단계에서의 출력이 다음 시간 단계의 입력으로 다시 사용됩니다. 이 순환 연결은 네트워크가 '기억'을 유지하도록 해, 이전의 입력이 현재와 미래의 결정에 영향을 미칠 수 있습니다.
- 파라미터 공유: 시간에 따라 동일한 가중치를 재사용함으로써, 모델이 시간에 무관하게 일관된 학습을 유지할 수 있습니다.
하지만 RNN은 장기 의존성 문제(long-term dependencies)를 해결하기 어렵다는 단점이 있습니다. 이를 극복하기 위해 개발된 구조로 LSTM (Long Short-Term Memory)이나 GRU (Gated Recurrent Units)가 있습니다. 이러한 구조들은 정보를 장기간에 걸쳐 보다 효과적으로 저장하고 접근할 수 있는 메커니즘을 제공합니다.
RNN은 주로 자연어 처리(NLP) 작업, 음성 인식 시스템, 주가 예측 등에 활용됩니다.
7.
- VGG (Visual Geometry Group)
- VGG는 옥스퍼드 대학의 VGG 연구팀이 개발한 신경망 모델입니다. 주로 이미지 인식을 위해 사용되며, 깊은 층의 컨볼루션 네트워크로 구성되어 있습니다. VGG 모델은 간단한 구조에도 불구하고 매우 깊은 네트워크로 구성되어 있어서 높은 인식률을 달성합니다. 일반적으로 VGG16 또는 VGG19라는 버전이 있습니다.
- MNIST (Modified National Institute of Standards and Technology database)
- MNIST는 핸드라이팅 숫자 인식을 위한 데이터셋입니다. 이 데이터셋을 위해 설계된 특정 모델을 지칭하는 것은 아니며, 다양한 딥러닝 모델이 MNIST 데이터셋에서 성능을 테스트하기 위해 사용됩니다.
- GoogleNet (Inception Network)
- GoogleNet은 Google에서 개발한 딥러닝 아키텍처로, "Inception" 구조가 특징인 모델입니다. 여러 크기의 커널을 사용하는 컨볼루션 연산이 특징적이며, 이를 통해 다양한 스케일의 특징을 잡아내는 것이 가능합니다. GoogleNet은 계산 자원을 효율적으로 사용하며 매우 깊고 복잡한 구조를 가지고 있습니다.
- ResNet (Residual Network)
- ResNet은 Microsoft에서 개발한 신경망 모델로, 깊은 네트워크를 효과적으로 학습할 수 있도록 설계된 아키텍처입니다. ResNet의 핵심은 "잔차 블록(residual blocks)"을 사용하는 것으로, 입력을 출력에 직접적으로 더함으로써 깊은 네트워크에서 발생할 수 있는 손실 정보와 기울기 소실 문제를 해결합니다.
다항 분류에서는 ...
마지막 레이어 : softmax
loss = 'categorical_crossentropy'
이진 분류에서는
마지막 레이어 : sigmod
loss = 'binary_crossentropy'
이진 분류 | 다항 분류 | |
마지막 레이어 | sigmod |
softmax |
loss | binary_crossentropy | categorical_crossentropy |
'인공지능...? > 머신러닝 및 Neural Network' 카테고리의 다른 글
[AI 용어 정리] Context, Atrous Convolution, HARD (0) | 2025.01.07 |
---|---|
[딥러닝 영상 분석] (1) | 2024.09.25 |
Colab Pro 결제 (0) | 2024.09.14 |
[CNN] model.fit (0) | 2024.02.05 |
[CNN] (0) | 2024.02.05 |