728x90 반응형 SMALL Learning-driven Methodology112 [Machine Learning] MNIST MNIST (Modified National Institute of Standards and Technology database) TensorFlow 샘플에 보면 mnist dataset이 많이 등장한다. MNIST는 인공지능 연구의 권위자 LeCun교수가 만든 dataset이고 현재 딥러닝을 공부할 때 반드시 거쳐야할 Hello, World같은 존재이다. MNIST는 60,000개의 train set과 10,000개의 test set으로 이루어져 있고 이 중 train set을 학습 data로 사용하고 test set을 신경망을 검증하는 데에 사용한다. MNIST는 간단한 컴퓨터 비전 dataset로, 아래와 같이 손으로 쓰여진 이미지들로 구성되어 있다. 숫자는 0에서 1까지의 값을 갖는 고정 크기 이.. 2022. 4. 28. [Machine Learning] 분류 (Classification) 분류 (Classification) supervised ML의 문제의 타입 (problem type)에 따라 크게 두가지로 분류될 수 있다. Regression (회귀 분석) : 주어진 데이터가 어떤 함수로부터 생성됐는가를 알아보는 ‘함수 관계’를 추측하는 것이다. 예측하는 결과값이 continuous value (연속값) Classification (분류) : 분류는 말 그대로 입력이 어떤 카테고리에 해당하는지 나누는 것이다. 즉 예 아니오 와 같은 예측하는 결과값이 discrete value (이산값) Classification은 주어진 데이터를 정해진 카테고리에 따라 분류하는 문제를 말한다. 최근에 많이 사용되는 이미지 분류도 Classification 중에 하나이다. 예를 들어, 이메일이 스팸메일.. 2022. 4. 28. [Machine Learning] 경사하강법 (Gradient Descent) 경사하강법 (Gradient Descent) 경사 하강법 (Gradient descent)은 1차 근삿값 발견용 최적화 알고리즘이다. 기본 아이디어는 함수의 기울기 (경사)를 구하여 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복시키는 것이다. 예를 들어, 회사 직원들의 근무 만족도를 1~100점 점수로 평가한 데이터가 있다고 가정하고 그것을 이차원 그래프상에 표시한다. 위의 데이터를 보면 "급여가 올라감에 따라 직원 만족도가 높아지는 경향이 있다"와 같은 패턴이 있다는 것을 알 수 있지만 모든 것이 일직선 상에 잘 맞지는 않다. 이러한 현상은 현실 세계에서 실제 데이터가 있는 경우 항상 발생한다. 그렇다면 급여에 따른 직원의 만족도를 완벽하게 예측할 수 있는 AI를 어떻게 학습 시킬 수 .. 2022. 4. 28. [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. 이전 1 ··· 5 6 7 8 9 10 11 12 다음 728x90 반응형 LIST