전체 글 623

R Keras - 모델링 결과가 loss: NaN, mae: NaN 등으로 나올때

여기서는 모델이 수행되는 과정에서는 에러가 없었으나, 최종 결과가 loss: NaN, accuracy:NaN, mae:NaN 등으로 나오는 경우, 필자가 찾아낸 문제해결 법이다. 지금까지 2가지 경우에 대해서 경험하였고, 다음과 같이 해결할 수 있다. 1. 입력 데이터에 NA 가 들어있는 경우 이때 아래와 같이 데이터 셋에서 NA를 제거해 준 다음 사용하면 된다. > data.set str(data.set) 2. 활성화 함수 선택이 문제인 경우 1번으로 해결되지 않을 때, layer_dense 내 activation 함수를 "softmax"에서 "relu"로 바꾸면 된다. single output 인 경우, softmax를 사용하면 이런 현상이 발생할 수 있다. 여기(https://github.com/k..

R Keras -csv 파일 읽어 train와 test 데이터로 나누기

책이나 사이트에 공개된 잘 만들어진 예제를 이용해서, 자신의 데이터에 바로 적용할 때, 필자와 같은 왕초보들은 항상, as always, as usual, 필연적으로, 반드시, 운명적으로, .... 한방에 작동하지 않고 여러가지 문제들로 인해 머리가 지끈지끈 아픈 상황과 문제가 발생할 수 있다. 아니, 발생한다. 하나하나 잡아보자. 딥러닝 책 등에서 제공된 예제 파일들은 모두 Keras 등의 패키지 내에 포함된 예제 파일들이다. 그래서 실제 내가 만든 .csv 파일을 읽어 들이는데, 입력 포맷이 맞지 않아 헤맬 수 있다. 이런 경우, 모델이 잘 돌아가지만, input_data 값이 없다는 에러가 발생할 수 있다. 아래와 같이 sampling 하면, 일반 책에서 사용하는 예제 파일을 읽어들이는 포맷으로 쉽..

R 딥러닝 Tensorflow 설치

처음 딥러닝을 시작할 때, 가장 편한 방법으로 설명. 예를 들어, Anaconda2 와 Anaconda3의 차이는 무엇인지 등에 대한 설명 없이 설치 방법 중심으로 설명한다. Anaconda는 딥러닝과 관련된 여러가지 패키지를 모두 모아놓은 것이라, 용량이 너무 크고, 초보자가 설치하기에는 자잘한 에러들이 자주 발생할 수 있다. 따라서, 가벼운 minconda3를 설치하는 것으로 처음 딥러닝을 시작하자. 여기서 다룰 내용은 아래와 같다. 1) Minconda 설치 2) 가상환경 설정 3) tensorflow 설치 1. Anaconda3(miniconda3) 설치하기. https://repo.continuum.io/miniconda/에서 최신 버전을 받아도 되지만, python 버전이 명시된 파일을 다운 ..

퍼셉트론 - 오차 역전파

예측을 위한 순전파 신경망은 순전파 해서 결과를 예측한다. 결과 레이어에 도달하기까지 모든 레이어에서의 연산이 포함된다. 오차 역전파 (back propagation) 가중치와 바이어스를 실제로 구할 때, 신경망 내부의 가중치 수정하는 방법(딥러닝에서 가장 중요한 부분 중 하나) 경사 하강법의 확장 개념 단일 퍼셉트론에서의 오차 역전파 1. 임의의 초기 가중치를 사용하여 처음 결과값(y)을 구함. 2. 그 결과값과 참값(예상 또는 기대하는 값) 사이의 평균 제곱 오차(ε)를 구함. 3. 이 오차를 최소로 만드는 지점으로 조금씩 거슬로 이동하면서 미분... 경사 하강법 4. 미분의 기울기가 0인(0으로 수렴되는) 지점이 최적화된(수정된) 최종 가중치. 최적화의 방향은 출력층에서 시작해서 입력층... 따라서..

퍼셉트론 - XOR 문제 해결(다층 퍼셉트론, 신경망)

XOR 문제 해결 아래 그림과 같이 2차원 평면 공간을 3차원으로 확장해서 분류할 수 있음. 즉, 좌표 평면 변화를 적용. XOR 문제를 해결하기 위해서는 2개의 퍼셉트론을 한번에 계산할 수 있어야 하는데, 은닉층(hidden layer)를 사용하면 가능함. 다층 퍼셉트론 1. 각 퍼셉트론의 가중치(w)와 바이어스(b)를 은닉층의 노드(n)로 보냄. 2. 은닉층으로 들어온 w, b에 시그모이드 함수를 적용하여 최종 결과값을 출력함 w와 b를 구하기 위해서 행렬로 표현하면, 연습: XOR 문제 해결 아래 예제를 통해서, XOR 진리표를 구할 수 있는지 연습해 보자. 먼저 각 노드 n1, n2를 구하고, 최종 y 출력값을 계산한다.