본문 바로가기
728x90
반응형
SMALL

Learning-driven Methodology/DL (Deep Learning)39

[Deep Learning] Basic Guide to Spiking Neural Networks for Deep Learning (3) How to build a Spiking Neural Network? SNN으로 작업하는 것은 어려운 작업이다. 그래도 흥미롭고 유용한 몇 가지 도구가 있다. SNN를 시뮬레이션하는 데 도움이 되고 주로 생물학자들이 사용하는 소프트웨어가 필요한 경우 다음을 확인하는 것이 좋다. GENESIS Neuron Brian NEST 이론이 아닌 실제 문제를 해결하는 데 사용할 수 있는 소프트웨어를 원한다면 다음을 확인해야 한다. SpikeNet TensorFlow 또는 SpykeTorch 를 사용해야 한다 . 그러나 특수 하드웨어 없이 로컬에서 SNN으로 작업하는 것은 계산적으로 매우 비용이 많이 든다. Tensorflow Tensorflow를 사용하여 SNN을 확실히 만들 수 있지만 DL 프레임워크가 처음에 S.. 2022. 1. 17.
[Deep Learning] Basic Guide to Spiking Neural Networks for Deep Learning (2) SNN architectures SNN은 그 개념이 독특함에도 불구하고 여전히 NN이므로 SNN 아키텍처는 세 그룹으로 나눌 수 있다. Feedforward Neural Network 는 모든 산업 분야에서 널리 사용되는 고전적인 NN 아키텍처이다. 이러한 아키텍처에서 데이터는 입력에서 출력으로의 한 방향으로만 전송된다. 순환이 없고 많은 숨겨진 layer에서 처리가 발생할 수 있다. ANN 아키텍처의 대부분은 feedforward이다. RNN( Recurrent Neural Network )은 좀 더 발전된 아키텍처이다. RNN 에서 neuron 간의 연결은 시간 순서를 따라 방향성 그래프를 형성한다. 이것은 그물이 시간적 동적 행동을 나타낼 수 있도록 한다. SNN이 recurrent인 경우 동적이며.. 2022. 1. 17.
[Deep Learning] Basic Guide to Spiking Neural Networks for Deep Learning (1) Introduction to Spiking Neural Networks DL은 데이터 과학 커뮤니티 내에서 뜨거운 주제이다. 산업 전반의 다양한 작업에서 매우 효과적임에도 불구하고 DL은 새로운 신경망 (NN) 아키텍처, DL 작업, 그리고 SNN (스파이킹 신경망)과 같은 차세대 NN의 새로운 개념을 제안하면서 끊임없이 진화하고 있다. What is a Spiking Neural Network? 인공 신경망 (ANN)의 일반적인 개념은 생물학에서 비롯된다. 우리는 정보 및 신호 처리, 의사 결정 및 기타 여러 작업에 사용되는 뇌 내부에 생물학적 신경망을 가지고 있다. 생물학적 신경망의 기본 요소는 생물학적 neuron이다. 반면 ANN에서는 인공 neuron이 사용된다. 인공 neuron은 서로 매우 .. 2022. 1. 17.
[Deep Learning] 드롭아웃 (Dropout) 드롭아웃 (Dropout) weight decay 기법은 간단하게 구현할 수 있고, 어느 정도 지나친 학습을 억제할 수 있다. 그러나 신경망 모델이 복잡해지면 weight decay만으로는 대응하기 어려워진다. 이럴 때 사용하는 것이 드롭아웃 (Dropout)이라는 기법이다. dropout은 신경망 모델에서 뉴런을 임의로 삭제하면서 학습하는 방법이다. 학습 시에 hidden layer의 neuron을 무작위로 골라 삭제한다. 훈련 때에는 데이터를 흘릴 때마다 삭제할 neuron을 무작위로 선택하고, 시험 때는 모든 neuron에 신호를 전달한다. 단, 시험 때는 각 neuron의 출력에 훈련 때 삭제한 비율을 곱하여 출력한다. neuron을 임의로 삭제하여 적은 수의 neuron만으로 지정된 레이블을 맞.. 2022. 1. 3.
[Deep Learning] 가중치 감소 (Weight Decay) 가중치 감소 (Weight Decay) 훈련 데이터가 매우 많다면 overfitting을 줄일 수 있지만, 현실적인 이유로 그러지 못하는 경우가 있다. 이런 상황에서 overfitting을 줄이도록 하는 여러 기법 중 하나가 바로 가중치 감소이다. 이것은 학습 과정에서 큰 가중치에 대해서 그에 상응하는 큰 패널티를 부과하여 overfitting을 억제하는 방법이다. overfitting은 weight 매개변수의 값이 커서 발생하는 경우가 많기 때문이다. 규제 (Regularization) weight decay에는 규제 (Regularization)가 이용된다. regularization란 weight의 절댓값을 가능한 작게 만드는 것으로, weight의 모든 원소를 0에 가깝게 하여 모든 특성이 출력에.. 2022. 1. 3.
[Deep Learning] 배치 정규화 (Batch Normalization) 배치 정규화 (Batch Normalization) 학습의 효율을 높이기 위해 도입되었다. batch normalization은 학습률을 높게 설정할 수 있기 때문에 학습 속도가 개선된다. 그리고 학습을 할 때마다 출력값을 정규화하기 때문에 weight 초기값 선택의 의존성이 적어진다. 마지막으로 overfitting 위험을 줄일 수 있고 gradient vanishing 문제도 해결 가능하다. batch normalization는 activation function의 활성화 값 또는 출력값을 정규화 (정규분포)하는 작업을 말한다. 다시 말해, 신경망의 각 layer에서 데이터 (배치)의 분포를 normalization하는 작업이다. 일종의 noise를 추가하는 방법으로 (bias와 유사) 이는 batc.. 2022. 1. 3.
[Deep Learning] 최적화 (Optimizer) 최적화 (Optimizer) 데이터의 크기가 클수록 훈련 속도는 느려진다. 따라서 neural network를 빠르게 훈련하기 위해 효율성을 높이기 위한 최적화 알고리즘을 잘 선택해야 한다. Gradient Descent 경사하강법에서는 θ 에 대해 gradient의 반대 방향으로 일정 크기만큼 이동해내는 것을 반복하여 loss function J(θ) 의 값을 최소화하는 파라미터 w, b를 찾는다. gradient descent은 무작정 기울어진 방향으로 이동하는 방식이기 때문에 탐색 경로가 비효율적이다. 또한 SGD는 방향에 따라서 기울기 값이 달라지는 경우에 적합하지 않은데 최소값의 방향으로만 움직이기 때문에 본래의 최저점으로 기울기의 방향이 좀처럼 향하지 않게 되고 다른 방향을 가리키게 되어 비효.. 2022. 1. 3.
[Deep Learning] 역전파 (Backpropagation) / 경사하강법 (Gradient Descent) 역전파 (Backpropagation) input에서 output으로 weight를 업데이트하면서 activation fuction을 통해 결과값을 가져오는 것을 순전파 (foward)라고 하며 말 그대로 앞쪽으로 input 값을 전파, 보내는 것이다. 하지만 임의로 순전파 했다고 출력 값이 정확하지는 않을 것이다. 임의로 설정한 weight 값이 input에 의해서 한 번 업데이트 되긴 했지만 많은 문제가 있을 수 있다. 역전파는 출력값에 대한 입력값의 기울기를 출력층 layer에서부터 계산하여 거꾸로 전파시키는 것이다. 거꾸로 전파시켜 최종적으로 출력층에서 output값에 대한 입력층의 input data 기울기 값을 구할 수 있다. 이 과정에서 chain rule이 이용된다. input이 들어오는 .. 2022. 1. 3.
[Deep Learning] 과적합 (Overfitting) 과적합 (Overfitting) 데이터가 너무 fit하게 학습이 되면서 생기는 문제를 과적합(Overfitting)이라 부른다. 데이터의 학습이 제대로 되지 않는 상태인 반대 개념을 언더피팅 (Underfitting)이라 한다. 과적합이 발생하는 사유 1. 학습 데이터가 너무 적은 경우 2. 학습 데이터 전처리를 잘못한 경우 3. 특징 (feature) 데이터가 너무 많은 경우 오버피팅을 줄이는 방법 1. feature를 줄이거나 정규화한다. 2. 데이터를 늘린다. 2022. 1. 3.
[Deep Learning] 척도 (Metrics) 척도 (Metrics) 척도는 어떤 모델을 평가하기 위해서 사용하는 값이다. 따라서 비슷한 개념인 loss function과의 개념이 헷갈릴 수 있다. loss function은 모델의 성능을 끌어올리기 위해서 참조하는 값이다. 다시말해, 트레이닝 (학습)을 위해서만 사용하는 나침반과 같은 존재라고 한다면 metrics는 모델의 성능을 알기 위한 개념이다. 따라서 metrics와 loss function의 개념은 분리되어야 하지만 경우에 따라서는 특정 metrics에 따라 최적화 하는 것이 최상일 때도 있다. 개념이 유사하기 때문에 동일한 개념으로 metrics를 사용하기도 하고 loss function을 사용하기도 한다. 정확도 (Accuracy) 가장 많이 쓰이는 개념으로 타겟 대비 정확히 예측한 비.. 2022. 1. 3.
728x90
반응형
LIST