본문 바로가기

머신러닝

(118)
뉴럴 네트워크의 일반적인 디자인 원칙(General Design Principles of Neural Network) 이는 유명한 CNN 아키텍쳐 중 하나인 Inception Architecture(GoogLeNet)의 논문 "Rethinking the Inception Architecture for Computer Vision" 중 2. General Design Priciples 을 번역 및 해석한 것입니다. 처음 모델을 만들어 나갈 때 좋은 참고자료가 될 것 같습니다. 정리(Theory) "There is a single hidden layer feedforward network that approximates any measurable function to any desired degree of accuracy on some compact set K" 간단히 말하면, 일반적인 Neural Network는 모든 함..
뉴럴 네트워크 디자인 팁(Designing Your Neural Networks) 앞서 뉴럴 네트워크의 일반적인 디자인 원칙(General Design Priciples of Neural Network)를 작성한 뒤, 조금 더 상세한 내용이 있었으면 좋겠다 싶었는데, 좋은 글을 발견하여 번역해보았습니다. 뉴럴 네트워크를 구성하고, 학습시키는 것은 굉장히 막막합니다! 어느정도의 Learning rate를 채택할지, 얼마나 많은 Hidden layer를 쌓을지, 어떤 Regularization 기법을 선택할지 등 정말 밑도끝도 없는 선택의 연속입니다. 이번 글에서는, 이런 선택의 갈림길에서, 당신이 조금 더 똑똑한 선택을 할 수 있도록 도움을 줄 것입니다. 동시에 나는 이 커널을 함께 보면서 아래의 내용을 공부하는 것을 추천합니다. 1. 기본적인 뉴럴 네트워크 구조 Input neuron..
4가지 CNN 살펴보기: AlexNet, VGG, GoogLeNet, ResNet 핵심 키워드 CNN(Convolutional Neural Network) Conv2D AlexNet VGG GoogLeNET ResNet 학습하기 오늘 살펴볼 CNN 아키텍쳐는 총 4가지 입니다. AlexNet, VGG, GoogLeNet, ResNet. 일반적으로 유명한 CNN 아키텍쳐로 이 4개를 꼽기도하며, ILSVRC라는 이미지 분류대회에서 1등을 했던 모델들입니다. 이 대회에서 기존에는 CNN 모델이 거의 없었지만 AlexNet의 1등을 시작으로, 거의 대부분의 참여자들이 CNN 모델을 가져왔습니다. AlexNet, VGG, GoogLeNet, ResNet 순서대로 개발되었으며, 점점 레이어가 깊어지면서, 성능도 개선되었습니다. 물론 레이어가 그냥 많다고 성능이 좋아지는 건 아닙니다. 성능이 좋..
데이터 스케일링(Data Scaling) 코드 머신러닝을 위한 데이터셋을 정제할 때, 특성별로 데이터의 스케일이 다르다면 어떤 일이 벌어질까요. 예를 들어, X1 특성은 0부터 1사이의 소수값을 갖는다 비해, X2 특성은 1000000부터 1000000000000사이의 소수값을 갖는 상황에서 y 값은 1000000부터 100000000까지의 값을 갖는 다고 가정하면, 사실 X1 특성은 y를 예측하는데 큰 영향을 주지 않는 것으로 생각할 수 있습니다.(이 외에도 overflow, underflow, 발산 수렴 등의 문제가 있습니다.) 때문에 이런 상태에서는 머신러닝이 잘 작동하지 않게 됩니다. 때문에 저희는 데이터 스케일링 작업을 통해, 모든 특성의 범위(또는 분포)를 갖게 만들어줘야합니다. 이를 위한 4가지 스케일링을 정리하겠습니다. 1. St..
[실습] 기본 파이썬 문법 실습 코드 #Rank a = np.array([[1,2,3],[2,3,4]]) row_r1 = a[1, :]# [2,3,4] , rank=1 row_r2 = a[1:2, :]# [[2,3,4]], rank=2 row_r3 = a[[1], :]# [[2,3,4]], rank=2 세 개의 코드의 출력은 모두 비슷하게 생겼으나, 값을 명시해주는 것에 따라 출력물의 랭크(차원)이 달라진다. #Rank x = np.array([[0,1], [2,3]], dtype=np.int) print(x) # [[0,1], [2,3] z = x print(z) # [[0,1], [2,3]] z[0,0] = 100 print(z) # [[100,1], [2,3]] print(x) # [[100,1], [2,3]] 파이썬은 기본적으로..
기계 학습 용어 정리 핵심 키워드 Machine Learning(기계학습) Terminology(용어) ML 용어 정리 학습하기 이번에는 가장 기본적인 용어에 대한 설명을 하고자합니다. 인풋, 아웃풋, 뉴럴넷 등이 그 대상입니다. 항상 용어는 굉장히 중요합니다. 그래서 저희는 아주 간단한 것이지만, 용어를 알아보고자 합니다. 뉴럴넷이라는 건 제 생각에, 단순히 뉴럴이 연결된 것입니다. 입력이 있으면, 출력이 있죠. 뉴럴넷이라는 게 흘러가는 모델이라 본다면, 그 모델의 흘러가는 부분에 들어가는 모든 것이 인풋 데이터입니다. 이미지, 동영상, 글자, 숫자 모든 것이 인풋이 될 수 있습니다만, 모든건 근본적으로 수로 입력이 될 것입니다. 쨋든, 인풋 데이터는 단순 입력입니다. 세상에는 무한한 물체가 있기 때문에, 우리가 문제를 분..
시작에 앞서 해당 카테고리의 글은 edwith.org에서 진행되는 최성준 박사님의 '논문으로 짚어보는 딥러닝의 맥' 강의의 자료를 사용해 만들어집니다. 박사님이 설명하시는 것을 타이핑하는 것을 일차적인 목적으로 하며, 제 이해도에 따라 부연적인 설명을 추가할 생각입니다. 순전히 저의 이해의 목적으로 하는 것이라, 중간중간 생략이 있을 수 있습니다.
Convolutional Neural Network(CNN)의 기초 핵심 키워드 Convolutional Neural Network(CNN) Convolutions Subsampling Convolution layer Fully connected layer 학습하기 이번에는 컨볼루션 뉴럴 네트워크(Convolutional Neural Network, CNN)에 대해서 알아보도록 하겠습니다. CNN이라는 것은 Convolutional Neural Network를 말하는데요, 이름으로 모든 것을 알 수 있습니다. 컨볼루션을 사용한 뉴럴 네트워크. 끝입니다. 그렇다면 컨볼루션이 뭔지를 알면 되겠지요. CNN의 구조는 다음과 같습니다. 인풋(Input)이라는 것은 어떤 입력 이미지입니다. 어떤 이미지가 있고, 거기에 컨볼루션이라는 과정을 거치면, (컨볼루셔널) 피쳐 맵(Feat..