728x90
면접 준비 - 딥러닝 기본 내용
1. 딥러닝이란?
딥러닝은 머신러닝의 한 분야입니다. 딥러닝 모델은 여러 층의 뉴런으로 구성되어 있으며, 복잡한 데이터에서 패턴을 학습하고 추출할 수 있습니다. 대표적인 모델로는 CNN, RNN, Transformer 등이 있습니다.
2. CNN(Convolutional Neural Networks)란?
합성곱 신경망(CNN)은 데이터로부터 직접 학습하는 딥러닝의 신경망 아키텍처입니다. CNN은 합성곱 계층과 풀링 계층을 사용해 이미지의 지역적 특징을 추출하고, 이를 기반으로 이미지 관련 처리 작업을 수행합니다. CNN은 이미지 분류, 분할, 생성, 객체 탐지 등의 분야에서 활용됩니다.
3. 역전파 알고리즘(Backpropagation)이란?
다층 퍼셉트론 같은 깊은 신경망이 등장한 후 선형으로 분류가 가능하지 않은 데이터들을 분류하는 것이 가능해졌습니다. 하지만 모델의 깊이가 깊어질수록, 모델의 가중치의 수는 기하급수적으로 늘어나게 됩니다. 기존의 경사하강법은 기울기를 사용하여 가중치를 업데이트를 하는 방법을 사용하지만, 여러 층에 존재하는 가중치들을 모두 하나하나 업데이트하는 것은 매우 많은 연산량과 메모리를 요구합니다. 이를 해결하고자 고안된 알고리즘이 역전파 알고리즘입니다. 역전파 알고리즘은 출력층에서 입력층 방향으로 오차를 전파시키며 각 층의 가중치를 업데이트합니다. Backpropagation은 신경망의 출력과 실제 값 사이의 오차를 최소화하기 위해 각 뉴런의 가중치를 조정하는 알고리즘입니다. 이는 출력층에서 입력층으로 오차를 역전파하여 가중치를 조정합니다.
4. 딥러닝에서 사용되는 활성화 함수의 종류와 특징?
활성화 함수는 퍼셉트론의 출력값을 결정하는 비선형 함수입니다. 활성화 함수는 퍼셉트론에서 입력값의 총합을 출력할지 말지 결정하고, 출력한다면 어떤 값으로 변환하여 출력할지 결정하는 함수입니다. 활성화 함수에는 Sigmoid, Tanh, Softmax, ReLU, Leaky ReLU
Sigmoid: 0과 1사이의 값을 출력하며 이진 분류에 주로 사용됩니다.
Tanh: -1과 1사이의 값을 출력하며, 시그모이드보다 더 넓은 출력 범위를 갖지만, sigmoid와 마찬가지로 gradient vanishing 문제가 있습니다.
ReLU: 입력이 0보다 클 때 입력 값을 그대로 출력하고, 0보다 작으면 0을 출력합니다. 비선형성을 추가하면서 계산이 간단한 함수로 가장 많이 활용됩니다.
Leaky ReLU: ReLU와 유사하지만, 입력이 0보다 작을 때 작은 양의 기울기를 갖으며, ReLU의 0이하의 값이 gradient가 0인 문제를 해결하였습니다.
Softmax: 다중 클래스 분류 문제에 활용되며, 출력 값의 합이 1이 되도록 정규화하여 확률 분포를 얻습니다.
5. 손실함수(Loss function)이란?
손실함수는 지도학습시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수입니다. 즉, 학습 중에 알고리즘이 얼마나 잘못 예측하는 정도를 확인하기 위한 함수로써 최적화(Optimization)를 위해 최소화하는 것이 목적인 함수입니다. 손실 함수는 목적 함수(objective function), 비용 함수(cost function), 에너지 함수(Energy function)등으로 부르고 있습니다.
6. 손실 함수를 최적화하기 위한 최적화 알고리즘?
손실함수는 머신러닝이나 딥러닝 모델이 예측한 값과 실제 값 사이의 차이를 측정하는 함수입니다. 이를 통해 모델의 성능을 평가하고, 모델이 어떤 방향으로 개선되어야 할지 알려주는 역할을 합니다. 손실함수의 값을 최소화하는 것이 모델 학습의 목표라고 할 수 있습니다. 대표적으로 확률적 경사 하강법(SGD), Momentum, Adam 등이 있습니다.
7. Dropout이란?
드롭아웃은 신경망에서 무작위로 일부 뉴런을 비활성화하는 기법입니다. 이를 통해 모델이 특정 뉴런에 과도하게 의존하지 않고 더욱 일반화될 수 있도록 도와줍니다.
8. 배치 정규화(Batch Normalization)이란?
Batch Normalization은 신경망의 각 층에서 입력을 정규화하여 학습을 안정화시키고 학습 속도를 높이는 방법입니다. 학습 데이터 전부를 넣고 gradient를 업데이트하는 것은 매우 비효율적입니다. 그렇기 때문에 대용량의 데이터를 Batch 단위로 나눠서 학습하는 방법입니다.
9. Normalization이란?
값의 범위를 0~1 사이의 값으로 바꾸는 것입니다. 학습 전에 scaling하는 것을 의미합니다.
10. Regularization
weight을 조정하는데 제약을 두는 방법입니다. Overfitting을 막기 위해 사용되며 L1, L2 regularization 등이 있습니다.
11. L1, L2 Regularization의 차이점은?
L1 regularization은 가중치의 절대값에 비례하는 손실을 손실 함수에 추가합니다. 이로 인해 가중치의 일부가 0이 되어 희소한 모델을 생성하게 되며, 이를 통해 모델의 복잡도를 줄이고 과적합을 방지합니다. L1 regularization은 중요하지 않은 특성의 가중치를 0으로 만들 수 있습니다. L2 regularization은 가중치의 제곱에 비례하는 손실을 손실 함수에 추가합니다. 이로 인해 가중치가 너무 커지는 것을 방지하며, 모델의 복잡도를 줄이고 과적합을 방지합니다. L2 regularization은 모든 가중치에 대해 일정한 감소 효과를 주기 때문에 가중치가 작은 값으로 수렴한다.
12. 데이터 증강(Data Augmentation)이란?
데이터 증강은 기존 학습 데이터를 변형하여 새로운 학습 데이터를 생성하는 기법입니다. 데이터 증강을 통해 학습 데이터의 다양성을 높여 모델의 일반화 성능을 향상시킬 수 있습니다.
13. 딥러닝 모델 속도 향상 방법?
딥러닝 모델의 속도 개선 방법은 연산 최적화, 여러 Layer를 거치는 구조를 하나의 layer로 합쳐서 최적화하는 TensorRT를 활용한 병렬처리, 모델 경량화가 있습니다. 모델 경량화는 Prunning, Quantization, Distillation으로 나눌 수 있습니다. 중요하지 않은 부분을 적절히 가지치기해서 줄이는 Pruning, 해상도를 낮춰서 작게 만드는 Quantization, 사이즈를 자체를 작게 만드는 Distillation이 있습니다.
딥러닝 모델의 학습 속도를 향상하기 위해서는 Mini-batch Gradient Descent, GRU, 초기 가중치 선택, 학습률 스케줄링, 최적화 알고리즘 선택 등의 방법이 있습니다.
미니 배치 경사 하강법: 전체 데이터셋이 아닌 작은 미니 배치를 사용해 학습 속도를 높입니다.
GRU 활용: 딥러닝 모델의 학습에 GPU를 사용해 행렬 연산이 병렬로 처리되어 속도가 크게 향상됩니다.
초기 가중치 선택: 가중치 초기화를 적절하게 선택하면 학습 속도와 수렴 성능이 향상됩니다.
Learning rate scheduling: learning rate를 조절해 학습 속도를 높이고, 수렴 성능을 향상시킵니다.
최적화 알고리즘 선택: 모델에 적합한 최적화 알고리즘을 선택해 학습 속도를 높입니다. 최적화 알고리즘에는 Adam, RMSprop, Adagrad 등이 있습니다.
14. 딥러닝의 가중치 초기화 방법?
학습의 시작 시점의 가중치를 잘 정할 때 사용하는 방법입니다.
Zero initialization: 모든 파라미터 값을 0으로 놓고 시작. 모든 가중치가 0이 되는 문제
Random Initialization: 가중치를 무작위 값으로 초기화합니다. 대부분의 출력값이 평균 주변에 분포하게 되는 문제가 발생
Xavier Initialization: sigmoid 계열의 활성화 함수를 사용할 때 사용하는 방법으로 가중치를 입력과 출력 뉴런 수에 따라 조정되는 값으로 초기화됩니다.
He Initialization: 가중치를 입력 뉴런 수에 따라 조정되는 값으로 초기화합니다. ReLU 계열의 활성화 함수를 사용할 때 활용합니다.
15. 딥러닝 모델 일반화 성능을 향상하기 위한 방법은?
모델의 일반화 성능을 향상하기 위해서는 데이터 증강, Regularization, Dropout, Batch Normalization 등의 방법이 있습니다.
Data Augmentation: 데이터셋의 다양성을 높여 일반화 성능을 높입니다.
Regularization: L1, L2 등의 방법으로 가중치 조정에 제약을 두어 과적합을 방지합니다.
Dropout: 뉴런의 일부를 무작위로 비활성화하여 과적합을 방지합니다.
Batch Normalization: 각 층의 출력을 정규화하여 학습 속도를 높이고 과적합을 방지합니다.
16. Autoencoder란?
입력 데이터를 주요 특징으로 효율적으로 압축(encoding)한 후, 압축된 표현에서 원본 입력을 재구성(decoding)하도록 설계된 아키텍처입니다.
Autoencoder는 비지도 학습을 사용해 입력 데이터의 잠재변수, 즉 직접 관찰할 수 없지만 근본적으로 데이터에 영향을 미치는 숨겨진 변수를 발견하도록 학습합니다. 압축된 데이터를 latent vector라고 하며 latent vector들의 총칭을 latent space라고 합니다.
17. GAN이란?
GAN(Generative Adversarial Networks)란 비지도학습에 사용되는 머신러닝 프레임워크의 한 종류입니다. GAN은 생성 모델로 분류 모델과 생성모델로 나뉘어져 있습니다. 분류 모델은 먼저 진짜 데이터를 진짜로 분류하도록 학습됩니다. 그 다음 생성 모델이 생성한 데이터를 가짜로 분류하도록 학습합니다. 마지막으로 학습된 분류 모델을 속이는 방향으로 생성 모델을 학습하게됩니다.
18. Attention mechanism이란?
디코더에서 출력 단어를 예측하는 매 시점(step)마다, 인코더의 입력 시퀀스를 다시 참고하는 것입니다. 이 때 입력 시퀀스를 동일한 비중으로 참고하는 것이 아닌, 예측 단어와 관련이 있는 입력 단어를 더욱 집중해서 보기 때문에 Attention이라고 합니다. 기존의 seq2seq 모델에서는 입력 데이터의 정보를 고정된 길이의 벡터로 압축하는데, 이 때 문장의 길이가 길어지면 중요한 정보가 손실된다는 한계가 존재했습니다. Attention은 이를 해결하기 위해 나온 방법으로 번역, 텍스트 요약, 질문-답변 등 다양한 자연어 처리 분야에서 높은 성능을 기록하였습니다.
728x90
반응형
'취업' 카테고리의 다른 글
[데이터분석 과제테스트] 데이터 분석 과제테스트 정리 (0) | 2024.11.08 |
---|---|
[면접준비] 컴퓨터비전 면접준비 - 컴퓨터비전 1 (0) | 2024.05.18 |
[면접준비] 컴퓨터비전 면접준비 - 컴퓨터비전 기본 (0) | 2024.05.13 |
[면접준비] 컴퓨터비전 면접 준비 - 머신러닝 (0) | 2024.05.11 |
[면접준비] 컴퓨터비전 면접 준비 - 선형 대수 & 확률 통계 (0) | 2024.05.10 |
728x90
면접 준비 - 딥러닝 기본 내용
1. 딥러닝이란?
딥러닝은 머신러닝의 한 분야입니다. 딥러닝 모델은 여러 층의 뉴런으로 구성되어 있으며, 복잡한 데이터에서 패턴을 학습하고 추출할 수 있습니다. 대표적인 모델로는 CNN, RNN, Transformer 등이 있습니다.
2. CNN(Convolutional Neural Networks)란?
합성곱 신경망(CNN)은 데이터로부터 직접 학습하는 딥러닝의 신경망 아키텍처입니다. CNN은 합성곱 계층과 풀링 계층을 사용해 이미지의 지역적 특징을 추출하고, 이를 기반으로 이미지 관련 처리 작업을 수행합니다. CNN은 이미지 분류, 분할, 생성, 객체 탐지 등의 분야에서 활용됩니다.
3. 역전파 알고리즘(Backpropagation)이란?
다층 퍼셉트론 같은 깊은 신경망이 등장한 후 선형으로 분류가 가능하지 않은 데이터들을 분류하는 것이 가능해졌습니다. 하지만 모델의 깊이가 깊어질수록, 모델의 가중치의 수는 기하급수적으로 늘어나게 됩니다. 기존의 경사하강법은 기울기를 사용하여 가중치를 업데이트를 하는 방법을 사용하지만, 여러 층에 존재하는 가중치들을 모두 하나하나 업데이트하는 것은 매우 많은 연산량과 메모리를 요구합니다. 이를 해결하고자 고안된 알고리즘이 역전파 알고리즘입니다. 역전파 알고리즘은 출력층에서 입력층 방향으로 오차를 전파시키며 각 층의 가중치를 업데이트합니다. Backpropagation은 신경망의 출력과 실제 값 사이의 오차를 최소화하기 위해 각 뉴런의 가중치를 조정하는 알고리즘입니다. 이는 출력층에서 입력층으로 오차를 역전파하여 가중치를 조정합니다.
4. 딥러닝에서 사용되는 활성화 함수의 종류와 특징?
활성화 함수는 퍼셉트론의 출력값을 결정하는 비선형 함수입니다. 활성화 함수는 퍼셉트론에서 입력값의 총합을 출력할지 말지 결정하고, 출력한다면 어떤 값으로 변환하여 출력할지 결정하는 함수입니다. 활성화 함수에는 Sigmoid, Tanh, Softmax, ReLU, Leaky ReLU
Sigmoid: 0과 1사이의 값을 출력하며 이진 분류에 주로 사용됩니다.
Tanh: -1과 1사이의 값을 출력하며, 시그모이드보다 더 넓은 출력 범위를 갖지만, sigmoid와 마찬가지로 gradient vanishing 문제가 있습니다.
ReLU: 입력이 0보다 클 때 입력 값을 그대로 출력하고, 0보다 작으면 0을 출력합니다. 비선형성을 추가하면서 계산이 간단한 함수로 가장 많이 활용됩니다.
Leaky ReLU: ReLU와 유사하지만, 입력이 0보다 작을 때 작은 양의 기울기를 갖으며, ReLU의 0이하의 값이 gradient가 0인 문제를 해결하였습니다.
Softmax: 다중 클래스 분류 문제에 활용되며, 출력 값의 합이 1이 되도록 정규화하여 확률 분포를 얻습니다.
5. 손실함수(Loss function)이란?
손실함수는 지도학습시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수입니다. 즉, 학습 중에 알고리즘이 얼마나 잘못 예측하는 정도를 확인하기 위한 함수로써 최적화(Optimization)를 위해 최소화하는 것이 목적인 함수입니다. 손실 함수는 목적 함수(objective function), 비용 함수(cost function), 에너지 함수(Energy function)등으로 부르고 있습니다.
6. 손실 함수를 최적화하기 위한 최적화 알고리즘?
손실함수는 머신러닝이나 딥러닝 모델이 예측한 값과 실제 값 사이의 차이를 측정하는 함수입니다. 이를 통해 모델의 성능을 평가하고, 모델이 어떤 방향으로 개선되어야 할지 알려주는 역할을 합니다. 손실함수의 값을 최소화하는 것이 모델 학습의 목표라고 할 수 있습니다. 대표적으로 확률적 경사 하강법(SGD), Momentum, Adam 등이 있습니다.
7. Dropout이란?
드롭아웃은 신경망에서 무작위로 일부 뉴런을 비활성화하는 기법입니다. 이를 통해 모델이 특정 뉴런에 과도하게 의존하지 않고 더욱 일반화될 수 있도록 도와줍니다.
8. 배치 정규화(Batch Normalization)이란?
Batch Normalization은 신경망의 각 층에서 입력을 정규화하여 학습을 안정화시키고 학습 속도를 높이는 방법입니다. 학습 데이터 전부를 넣고 gradient를 업데이트하는 것은 매우 비효율적입니다. 그렇기 때문에 대용량의 데이터를 Batch 단위로 나눠서 학습하는 방법입니다.
9. Normalization이란?
값의 범위를 0~1 사이의 값으로 바꾸는 것입니다. 학습 전에 scaling하는 것을 의미합니다.
10. Regularization
weight을 조정하는데 제약을 두는 방법입니다. Overfitting을 막기 위해 사용되며 L1, L2 regularization 등이 있습니다.
11. L1, L2 Regularization의 차이점은?
L1 regularization은 가중치의 절대값에 비례하는 손실을 손실 함수에 추가합니다. 이로 인해 가중치의 일부가 0이 되어 희소한 모델을 생성하게 되며, 이를 통해 모델의 복잡도를 줄이고 과적합을 방지합니다. L1 regularization은 중요하지 않은 특성의 가중치를 0으로 만들 수 있습니다. L2 regularization은 가중치의 제곱에 비례하는 손실을 손실 함수에 추가합니다. 이로 인해 가중치가 너무 커지는 것을 방지하며, 모델의 복잡도를 줄이고 과적합을 방지합니다. L2 regularization은 모든 가중치에 대해 일정한 감소 효과를 주기 때문에 가중치가 작은 값으로 수렴한다.
12. 데이터 증강(Data Augmentation)이란?
데이터 증강은 기존 학습 데이터를 변형하여 새로운 학습 데이터를 생성하는 기법입니다. 데이터 증강을 통해 학습 데이터의 다양성을 높여 모델의 일반화 성능을 향상시킬 수 있습니다.
13. 딥러닝 모델 속도 향상 방법?
딥러닝 모델의 속도 개선 방법은 연산 최적화, 여러 Layer를 거치는 구조를 하나의 layer로 합쳐서 최적화하는 TensorRT를 활용한 병렬처리, 모델 경량화가 있습니다. 모델 경량화는 Prunning, Quantization, Distillation으로 나눌 수 있습니다. 중요하지 않은 부분을 적절히 가지치기해서 줄이는 Pruning, 해상도를 낮춰서 작게 만드는 Quantization, 사이즈를 자체를 작게 만드는 Distillation이 있습니다.
딥러닝 모델의 학습 속도를 향상하기 위해서는 Mini-batch Gradient Descent, GRU, 초기 가중치 선택, 학습률 스케줄링, 최적화 알고리즘 선택 등의 방법이 있습니다.
미니 배치 경사 하강법: 전체 데이터셋이 아닌 작은 미니 배치를 사용해 학습 속도를 높입니다.
GRU 활용: 딥러닝 모델의 학습에 GPU를 사용해 행렬 연산이 병렬로 처리되어 속도가 크게 향상됩니다.
초기 가중치 선택: 가중치 초기화를 적절하게 선택하면 학습 속도와 수렴 성능이 향상됩니다.
Learning rate scheduling: learning rate를 조절해 학습 속도를 높이고, 수렴 성능을 향상시킵니다.
최적화 알고리즘 선택: 모델에 적합한 최적화 알고리즘을 선택해 학습 속도를 높입니다. 최적화 알고리즘에는 Adam, RMSprop, Adagrad 등이 있습니다.
14. 딥러닝의 가중치 초기화 방법?
학습의 시작 시점의 가중치를 잘 정할 때 사용하는 방법입니다.
Zero initialization: 모든 파라미터 값을 0으로 놓고 시작. 모든 가중치가 0이 되는 문제
Random Initialization: 가중치를 무작위 값으로 초기화합니다. 대부분의 출력값이 평균 주변에 분포하게 되는 문제가 발생
Xavier Initialization: sigmoid 계열의 활성화 함수를 사용할 때 사용하는 방법으로 가중치를 입력과 출력 뉴런 수에 따라 조정되는 값으로 초기화됩니다.
He Initialization: 가중치를 입력 뉴런 수에 따라 조정되는 값으로 초기화합니다. ReLU 계열의 활성화 함수를 사용할 때 활용합니다.
15. 딥러닝 모델 일반화 성능을 향상하기 위한 방법은?
모델의 일반화 성능을 향상하기 위해서는 데이터 증강, Regularization, Dropout, Batch Normalization 등의 방법이 있습니다.
Data Augmentation: 데이터셋의 다양성을 높여 일반화 성능을 높입니다.
Regularization: L1, L2 등의 방법으로 가중치 조정에 제약을 두어 과적합을 방지합니다.
Dropout: 뉴런의 일부를 무작위로 비활성화하여 과적합을 방지합니다.
Batch Normalization: 각 층의 출력을 정규화하여 학습 속도를 높이고 과적합을 방지합니다.
16. Autoencoder란?
입력 데이터를 주요 특징으로 효율적으로 압축(encoding)한 후, 압축된 표현에서 원본 입력을 재구성(decoding)하도록 설계된 아키텍처입니다.
Autoencoder는 비지도 학습을 사용해 입력 데이터의 잠재변수, 즉 직접 관찰할 수 없지만 근본적으로 데이터에 영향을 미치는 숨겨진 변수를 발견하도록 학습합니다. 압축된 데이터를 latent vector라고 하며 latent vector들의 총칭을 latent space라고 합니다.
17. GAN이란?
GAN(Generative Adversarial Networks)란 비지도학습에 사용되는 머신러닝 프레임워크의 한 종류입니다. GAN은 생성 모델로 분류 모델과 생성모델로 나뉘어져 있습니다. 분류 모델은 먼저 진짜 데이터를 진짜로 분류하도록 학습됩니다. 그 다음 생성 모델이 생성한 데이터를 가짜로 분류하도록 학습합니다. 마지막으로 학습된 분류 모델을 속이는 방향으로 생성 모델을 학습하게됩니다.
18. Attention mechanism이란?
디코더에서 출력 단어를 예측하는 매 시점(step)마다, 인코더의 입력 시퀀스를 다시 참고하는 것입니다. 이 때 입력 시퀀스를 동일한 비중으로 참고하는 것이 아닌, 예측 단어와 관련이 있는 입력 단어를 더욱 집중해서 보기 때문에 Attention이라고 합니다. 기존의 seq2seq 모델에서는 입력 데이터의 정보를 고정된 길이의 벡터로 압축하는데, 이 때 문장의 길이가 길어지면 중요한 정보가 손실된다는 한계가 존재했습니다. Attention은 이를 해결하기 위해 나온 방법으로 번역, 텍스트 요약, 질문-답변 등 다양한 자연어 처리 분야에서 높은 성능을 기록하였습니다.
728x90
반응형
'취업' 카테고리의 다른 글
[데이터분석 과제테스트] 데이터 분석 과제테스트 정리 (0) | 2024.11.08 |
---|---|
[면접준비] 컴퓨터비전 면접준비 - 컴퓨터비전 1 (0) | 2024.05.18 |
[면접준비] 컴퓨터비전 면접준비 - 컴퓨터비전 기본 (0) | 2024.05.13 |
[면접준비] 컴퓨터비전 면접 준비 - 머신러닝 (0) | 2024.05.11 |
[면접준비] 컴퓨터비전 면접 준비 - 선형 대수 & 확률 통계 (0) | 2024.05.10 |