Deep Learning 27

Optimizer 종류

대표적인 Optimizers SGD (Stochastic Gradient Descent) 배치 내 단일 샘플 혹은 미니배치의 Gradient를 이용하여 파라미터를 업데이트 Momentum(관성)을 추가하면 이전 Gradient의 속도를 고려하여 더 개선된 결과를 얻을 수 있음 Adagrad 각 파라미터에 학습률을 동적으로 조절하여, 빈번하게 업데이트 되는 파라미터의 학습률을 감소 RMSprop Adagrad의 단점을 개선하여, 학습률이 너무 빨리 감소하지 않도록 Gradient의 이동평균 사용 Adam (Adaptive Moment Estimation) 모멘텀과 RMSProp의 아이디어를 결합하여, Momentum과 Scaling 인자를 함께 사용 Adadelta RMSProp의 확장으로, learnin..

Deep Learning 2023.09.17

딥러닝 모델종류

1. MLP (Multi Layer Perceptron) 여러 층을 가진 퍼셉트론 구조로, 기본적인 인공신경망의 형태임. 분류와 회귀문제에 활용 입력층/은닉층/출력층으로 구성되며, 은닉층 다음에는 activation function을 통해 출력값을 계산하고 최종 출력층에서는 문제의 목적에 따라 설정하는 노드 수를 결정한다. (분류는 클래스 개수로 설정) 초기에는 무작위의 가중치로 시작해서 Network의 출력과 실제값의 차이인 Loss를 계산함. 이 오차를 최소화하는 것이 역전파임. 2. CNN (Convolutional Neural Network) CNN은 주로 이미지, 영상 등에 사용되는 구조로, 이미지의 지역적인 특성과 패턴을 파악하기 위해 합성곱 연산을 사용함. 합성곱층(Convolutional ..

Deep Learning 2023.09.14

STEPWISE feature selection

머신러닝 모델에서 사용할 변수를 선택하는 방법으로, 특징 중요도에 따라 변수를 추가하거나 제거하면서 반복 수행하여 최종 변수 선택 방법 Forward Selection : 빈 모델로 시작해서 가장 중요한 변수를 하나씩 추가하면서 성능 측정 Backward Selection : 모든 변수를 사용한 모델로 시작해서 중요도가 가장 낮은 변수를 제거하면서 성능 측정 Bidirectional : Forward 와 Backward를 결합한 방식으로, 중요한 변수를 추가하면서 동시에 덜 중요한 변수를 제거하면서 성능을 측정 평가기준 : P-value (보통 0.05나 0.01 사용) 장점 불필요한 변수 제거는 모델을 간소화 하고 복잡도를 줄임 계산비용 줄어듬 과적합 방지 단점 모든 경우의 수를 고려하지 못하므로, 최..

Deep Learning 2023.09.14

Local Minimum

우리가 목표로 하는 최적해를 찾아야하는데, n차 곡선에서 미분하다 특정 구간에서 머무르는 현상 딥러닝에서 문제점이 된다고는 하지만... 2014년 작성된 한 논문을 보면, 모델링 할 때 크게 신경쓰지 않아도 된다고 함. 논문 링크 : https://arxiv.org/pdf/1406.2572.pdf 고차원 데이터를 사용할 때 Local minimum 현상이 발생하기 어려움. 딥러닝 구조의 모든 weight 값이 Local minimum 이 되면 가중치 업데이트가 중단되는데, 사실상 모든 weight가 그럴 확률이 매우 낮음. Local Minimum을 해결하는 방법은 ? Optimizer 를 Momentum/Adagrad/Adam 같은걸 써본다. 적절한 Optimizer 선정시에는 아래 그림을 참고해서 여..

Deep Learning 2023.08.25

Pytorch 기본

1. 텐서 Tensor는 다차원 배열을 처리할 수 있는 데이터로, Numpy array 와 비슷하다. 여러 데이터 type이 있는데, 아래와 같다. 데이터는 보통 Float 타입을 사용하고, 라벨값은 LongTensor를 사용한다. (Classification Task) 부동소수점 타입: torch.float16 또는 torch.half: 반정밀도 부동소수점 torch.float32 또는 torch.float: 단정밀도 부동소수점 (기본값) torch.float64 또는 torch.double: 배정밀도 부동소수점 정수 타입: torch.int8: 8-bit 정수 torch.uint8: 8-bit 부호 없는 정수 torch.int16 또는 torch.short: 16-bit 정수 torch.int32 또..

Deep Learning 2023.08.23

Pytorch ? TensorFlow ?

- 위 그래프에서도 보다시피, Torch 의 구글 트렌드는 지속적으로 상승하고 있음. (앞으로도 그럴것같다는...) - 2023년 1월 기준, 최근 5년내 논문 구현에서도 Pytorch 사용빈도가 압도적으로 우세함. (PapersWithCode) - Torch는 디버깅하기 쉽다. (Line 별 옵션) - Pythonic Interface - 유연한 모델 저장 (가중치만 따로 저장할 수 있어서, 모델 구조 바뀔 때 편하다.) - Documentation에서 많은 튜토리얼 제공 (초보자가 접근하기 쉽다. ) 등등.. 여러가지 이유가 또 있을거고, 어떤 점에서는 Tensorflow가 더 좋은점도 있겠지만... 나는 연구실에서 사용하던게 파이토치여서 더 친숙해서 앞으로도 토치로 개발을 할 것 같다.

Deep Learning 2023.08.23