목록Anaconda/DeepLearning (7)
Practice makes perfect

합성곱 신경망 (Convolutional Neural Network, CNN) : CNN은 이미지, 동영상 등을 분석하는데 사용하는 알고리즘입니다. 완전연결 계층의 문제점 - 기존에 구현했던 완전 계측, 즉 기존 신경망은 데이터의 형상이 무시됩니다. 글자의 크기가 달라지거나 글자의 회전이 생기면 글자에 변형과 같이 글자에 변형이 조금만 생기더라도 다른 글자로 인식하기 때문에 새로운 학습 데이터를 넣어주지 않으면 좋은 결과 얻을 수 없습니다(패턴을 읽지 못하므로 인식을 위해 다양한 데이터 필요) - 입력 데이터가 이미지인 경우, 이미지는 3차원(가로, 세로, 채널(색상))으로 구성된 데이터이나 1차원으로 평탄화해줘야 합니다. 합성곱 계층의 특징 - 원본 이미지를 가지고 여러개 특징 맵(feature map..

오차역전파법 (backpropagation) : 가중치 매개변수의 기울기를 효율적으로 계산하는 방법 결과값을 손실함수로 변환한다 손실함수의 기울기를 수치 미분 기울기가 0이 되는 지점까지 weight를 변화 - 수치 미분을 통하여 기울기를 구하는데, 이는 단순하고 구현하기는 쉽지만 계산 시간이 오래 걸린다는 단점이 있습니다. 따라서, 가중치 매개변수의 기울기를 가장 효율적으로 계산할 수 있는 오차역전파법(backpropagation)을 사용합니다. 순전파 : 왼쪽 -> 오른쪽 역전파 : 오른쪽 > 왼쪽 계산 그래프 : 계산 그래프는 계산 과정을 그래프로 나타낸 자료구조로, 복수의 노드와 에지로 표현합니다. 예제1) 현빈 군은 슈퍼에서 1개에 100원인 사과를 2개 샀습니다. 이때 지불금액을 구하시오, 단..

확률적 경사 하강법 (Stochastic Gradient Descent, SGD) : 데이터를 미니배치로 무작위로 선정하여 경사 하강법으로 매개변수를 갱신하는 방법으러 추출된 데이터 한개에 대해서 그래디언트를 계산하고, 경사 하강 알고리즘을 적용합니다. +) 추출된 데이터 한 개에 대해서 error gradient 를 계산하고, Gradient descent 알고리즘을 적용하는 방법 모델의 레이어 층은 하나의 행렬곱으로 생각할 수 있고, 여러개의 묶음 데이터는 행렬이라고 생각 할 수 있습니다. 즉, 여러개의 묶음 데이터를 특정 레이어 층에 입력하는 것은 행렬 x 행렬로 이해할 수 있는데, SGD는 입력 데이터 한 개만을 사용하기 때문에 한 개의 데이터를 '벡터' 로 표현하여 특정 레이어 층에 입력하는 것..

신경망 : 퍼셉트론에서 출발하여 여러 입력신호를 입력받아서 출력을 내보내주는 표현이 퍼셉트론이었는데, 퍼셉트론과의 차이는 활성화 함수를 어떤 것을 사용하느냐에 차이를 가집니다. 퍼셉트론은 스텝 함수를 사용하고, 신경망은 시그모이드 함수를 사용합니다. 스텝 함수는 선형성이고, 시그모이드 비선형입니다. 게이트를 통해서 결과를 확인할 때, XOR는 비선형의 형태를 통해서 코드상으로 구현할 수 있습니다. 코드의 형태를 봤을 때, 입력과 출력의 형태로만 되어있던 것을 은닉층을 통해 다층의 구조를 가져갈 때, 활성화 함수를 시그모이드 함수로 활용하여 선형적으로 절대 분류 할 수 없었던 특징을 비선형으로 구현할 수 있게 되었습니다. 신경망 학습 : 데이터로부터 매개변수의 값을 정하는 방법 - ex) y = ax + ..

신경망 (neural network) : 인공신경망( artificial neural network, ANN)은 기계학습과 인지과학에서 생물학의 신경망(동물의 중추신경계중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘입니다. 신경망은 아래와 같이 왼쪽부터 Input(입력층), Hidden(은닉층), Output(출력층)으로 표현할 수 있습니다. 은닉층은 양쪽의 입력층과 출력층과는 달리 우리 눈에는 보이지 않기 때문에 'Hidden(은닉)'이라고 합니다. 퍼셉트론 복습 - y는 출력 신호 - x1 과 x2는 입력 신호 - w1 과 w2는 가중치(weight) : 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용 - b(편향) : 뉴런이 얼마나 쉽게 활성화 제어 -뉴런(혹은 노드) : 그림의 원 Bi..

넘파이 (NumPy , Numerical Python) : 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 대표적 인 패키지로 대량 데이터의 배열 연산을 가능하게 하므로 빠른 배열 연산 속도를 보장합니다. 넘파이 특징 - C/C++ 과 같은 저수준 언어 기반의 호환 API 를 제공합니다. - 파이썬 언어 자체가 가지는 수행 성능의 제약이 있으므로 수행 성능이 매우 중요한 부분은 C/C++ 기반의 코드로 작성하고 이를 넘파이에서 호출하는 방식으로 쉽게 통합 가능합니다. - 다양한 데이터 핸들링 기능도 제공합니다. - 넘파이 array() 함수는 파이썬의 리스트와 같은 다양한 인자를 입력 받아서 ndarray 로 변환하는 기능을 수행합니다. 넘파이 모듈의 임포트 방법 - import nu..

퍼셉트론(perceptron) - 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 고안한 알고리즘 - 신경망(딥러닝)의 기원이 되는 알고리즘 - 퍼셉트론의 구조를 배우는 것은 신경망과 딥러닝으로 나아가는 데 중요한 아이디어를 배우는 일 - 퍼셉트론은 모든 학습 데이터를 정확히 분류시킬 때까지 학습이 진행되기 때문에 학습 데이터가 선형적으로 분리될 수 있을 때 적합한 알고리즘 출처: https://www.slideshare.net/jbhuang/lecture-29-convolutional-neural-networks-computer-vision-spring2015 ● 퍼셉트론(perceptron : 인공 뉴런 / 단순 퍼셉트론) - 다수의 신호를 입력으로 받아 하나의 신호를 출력 - 신호 ..