React에서는 JSX를 사용할 것을 권유한다.

 

바닐라 JS 혹은 일반적?으로는 html을 사용하고, Vue에서는 .vue 파일을 사용하는 것과 같이

 

.jsx 확장자를 가진 jsx파일을 사용한다.

 

간단하게 설명하자면 원래는 html과 javascript는 한 공간? 내에 공존할 수 없다.

 

같은 파일 내에 있어도

<html> </html>  <script></script>

이렇게 태그로 나누어주고, 그 내에서 코드를 작성해야했다.

 

하지만 JSX는 공존한다.

 

<html> 태그 내의 내용을 변수처리 할 수 있는 등 원래 html이나 js에서는 하지 못했던 것들을 할 수 있다.

 

물론 그래서 일반적인 js나 html 코드가 아니기 때문에 jsx은 Babel로 변환해주어야 한다.

 

 

 

반응형

React에서의 children과 비슷하다.

 

부모에서 정의한 후 자식에서는 slot 태그를 사용하면 부모에서 정의한 내용들이 들어간다.

 

부모의 데이터를 사용할 수 있다는 장점이 있다.

반응형

Vuex에서 Cannot read property 'state' of undefined 해결법을 다뤄보고자 한다.

 

Vuex에서

"this.$store.state.데이터" 부분에서 오류가 발생하는데 해결법은 간단하다.

 

Vue와 Vuex 연결을 해주지 않은 것이다.

 

Vue 최상위 컴포넌트, 그러니까  .Vue 파일 중에 제일 처음 시작하는 파일에

import store from "./store"; 한 줄을 추가해준다.

 

최상위 컴포넌트는 main.js를 보면 알 수 있다.

그리고 Vuex 저장소를 store.js 파일에 했을 때 저렇게 하면 된다.

(안해봐서 되는지는 모르겠지만 만약에 다른 js파일에 저장했다면 아마도 그 이름을 입력하면 될 것이다)

 

그리고 store.js 파일 윗 줄에 있는 import들 아래에 Vue.use(Vuex);  한줄 추가해주면 된다.

 

이러면 Vue와 Vuex 연결이 되고, $store를 사용하여 store에 접근 가능하다.

 

 

 

 

 

 

 

반응형

'Coding > Vue.js' 카테고리의 다른 글

Vue.js Slot (내용 추가 중)  (3) 2020.03.14
Vuex 사용법  (0) 2020.02.19
Vue.js에서의 Vuex, EventBus  (0) 2020.02.18
Vue 객체, 배열을 index 값으로 바꾸기  (0) 2020.02.17
Vue.js watch: {}  (0) 2020.02.16

인접하는 계층의 모든 뉴런과 연결되어 있는 것을 완전연결이라고 합니다.

 

완전연결 계층은 입출력 데이터를 넣을 때, 행렬로 변환해서 넣으면서, 1차원 데이터로 변환하는데

이 과정에서 데이터의 형상이 무시됩니다.

 

CNN은 데이터의 형상을 유지하는 합성곱 계층을 입출력 데이터로 사용합니다.

이렇게 합성곱 계층을 사용한 입출력 데이터를 특징 맵이라고 합니다.

입력 데이터는 입력 특징맵, 출력 데이터는 출력 특징맵이라고 합니다.

 

합성곱 계층에서 처리하는 합성곱 연산필터( 커널 )을 사용하여 연산하여 필터 연산이라고 합니다.

 

반응형

'Coding > DeepLearning' 카테고리의 다른 글

학습 관련 기술들 - 최적화  (0) 2020.03.10
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
신경망 Neural network 이란? - 1  (0) 2020.02.29

신경망 학습은 손실 함수 값을 가능한 낮추는 매개변수, 즉 최적 매개변수를 찾는 문제이며, 이 문제를 해결하는 것을 최적화라고합니다.

 

이 방법에는 여러 가지가 있습니다.

 

1. 확률적 경사 하강법 ( SGD )

 

2. 모멘텀

 

3. AdaGrad

 

학습을 진행시키면서 학습률을 감소시키는 방법입니다.

h라는 변수에 과거의 기울기를 계속 제곱해서 더해주고, 매개변수에  1 /√h을 곱해줌으로 학습률을 조정합니다.

 

4. RMSProp

 

AdaGrad는 과거의 기울기를 계속 제곱해서 더해주기 때문에 어느 순간에 0이 되어서 매개변수가 갱신이 되지 않습니다. 

이를 개선한 방법이 RMSProp으로 먼 과거의 기울기는 잊고 새로운 기울기 정보를 크게 반영하는 지수이동평균이라는 새로운 방법입니다.

 

5. Adam

 

 

반응형

'Coding > DeepLearning' 카테고리의 다른 글

CNN 합성곱 신경망  (0) 2020.03.12
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
신경망 Neural network 이란? - 1  (0) 2020.02.29

계산 그래프는 계산 과정을 나타낸 그래프입니다.

그래프이기 때문에 노드와 엣지로 나타내는데,

계산을 왼쪽에서 오른쪽으로 진행하는 것을 순전파, 오른쪽에서 왼쪽으로 진행하는 것을 역전파라고 합니다.

 

오차역전파법은 기울기를 구할 때 수치 미분보다 더 빠르게 구하기 위해 사용합니다.

반응형

'Coding > DeepLearning' 카테고리의 다른 글

CNN 합성곱 신경망  (0) 2020.03.12
학습 관련 기술들 - 최적화  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
신경망 Neural network 이란? - 1  (0) 2020.02.29

학습이란 학습시킨 데이터를 통해 가중치 매개변수의 최적값을 얻어낼 때, 컴퓨터가 알아서 획득하는 것을 말합니다.

손실 함수라는 것의 결괏값을 가장 작게 만드는 가중치 매개변수가 최적 값입니다.

 

기계학습은 학습시킬 데이터로부터 규칙(패턴)을 찾아내는 일을 사람이 아닌 기계(컴퓨터)가 하는 것입니다.

하지만 특징을 정하는 과정에서는 사람이 개입할 수 밖에 없습니다.

예를 들어 숫자를 분류하는 기계학습을 할 때, 이미지를 벡터로 변환하고, 벡터를 가지고 학습하는 방법이 있습니다.

이 때, 이미지를 벡터로 변환할 때는 사람의 개입이 있을 수 밖에 없습니다.

 

이러한 사람의 개입을 보다 최소화하는 것이 신경망딥러닝입니다.

그래서 딥러닝을 종단간 기계학습이라고도 합니다.

 

기계학습에는 훈련 데이터시험 데이터로 나누어 학습과 실험을 수행합니다.

훈련 데이터를 이용하여 최적의 매개변수를 찾아내고, 시험 데이터로 잘 찾아냈는지 테스트합니다.

이 때, 특정 데이터셋에만 지나치게 최적화되면 오버피팅( overfitting )되었다고 합니다.

 

신경망 학습이 잘 되었는지 확인하기 위해 사용하는 지표가 손실 함수입니다. 

손실 함수는 신경망의 학습의 나쁨을 나타내는 지표입니다.

즉, 손실 함수가 높다는 것은 학습이 제대로 되지 않았다는 의미입니다.

 

손실 함수에는 평균 제곱 오차, 교차 엔트로피 오차가 있다.

 

훈련 데이터가 너무 많으면 모든 손실 함수를 구하기 힘드니,

그 중 일부를 무작위로 뽑아서 학습을 수행하는 것을 미니배치( mini-batch ) 학습이라고 합니다.

 

정확도가 아닌 손실 함수를 사용하는 것은 개선할 때 매개 변수의 기울기를 이용하기 때문입니다.

만약에 정확도를 지표로 삼는다면, 변화량은 0이다가 계단 함수처럼 어느 순간 변화하기 때문에 기울기가 계속 0이 나오기 때문에 개선하기가 힘듭니다.

 

가중치 매개 변수 기울기를 구할 때는 수치 미분을 이용합니다.

두 점에서 함수 값들의 차인 차분을 이용하여 미분을 구하는 것을 수치 미분이라고 합니다.

 

한 번 학습할 때 얼마만큼 학습할지, 그리고 매개변수 값을 얼마나 갱신할지 정하는 것을 학습률이라고 합니다.

학습률이 너무 크거나 작으면 문제가 생길 수 있습니다.

 

에폭은 훈련 데이터를 모두 소진했을 때 횟수를 말합니다.

데이터가 1000개고 100개로 미니배치 학습할 경우 10회가 1 에폭입니다.

 

학습이 잘 될 경우 에폭이 늘어날수록 정확도가 늘어나는데, 너무 늘어나면 오버피팅이 일어나서 정확도가 떨어집니다.

반응형

신경망을 구현할 때 행렬을 사용하여 구현할 수 있습니다.

 

 

출력층에서는 문제에 따라 다른 활성화 함수를 사용하는데,

 

회귀에는 항등 함수를, 분류에는 소프트맥수 함수를 사용합니다.

 

분류는 데이터가 어느 클래스에 속하는지 해결하는 문제입니다.

성별을 분류하거나, 어떤 동물인지 분류하는 것 등을 예로 들 수 있습니다.

분류에서는 출력층의 뉴런 수를 분류하려는 클래스 수와 같게 설정합니다.

예를 들면 숫자 분류를 하려면 클래스가 0~9까지 10개이니 출력층의 뉴런 수는 10개가 되어야합니다.

 

회귀는 입력한 데이터를 통해 연속적인 수치를 예측하는 문제입니다.

예를 들면 사진 속 인물의 몸무게, 키 같이 연속적인 데이터가 출력으로 나오는 문제를 예측하는 것이 회귀입니다.

 

항등 함수는 입력을 그대로 출력하는 함수입니다.

 

소프트맥수 함수는 출력을 0-1까지의 값으로 정규화하여 출력 값들의 합이 1이 되는 함수입니다.

 

전처리는 신경망에 넣을 입력 데이터에 특정한 변환을 하는 것입니다.

전처리에는 정규화와 데이터 백색화 등이 있습니다.

 

정규화는 데이터를 특정 범위로 변환하는 것을 말합니다. 

예를 들어 데이터 값들을 모두 0에서 1까지의 값으로 변환하는 소프트 맥스가 있습니다.

 

데이터 백색화는 전체 데이터를 균일하게 분포시키는 것을 말합니다.

 

배치( batch )는 입력 데이터를 하나로 묶어 보내는 것입니다.

예를 들어 하나의 이미지 파일을 처리하는 것보다, 100개를 한 번에 묶어서 보내 처리하는 것입니다.

이러면 입출력(I/O) 장치의 병목 현상을 조금 더 피할 수 있고,

수치 계산 라이브러리들이 큰 배열의 계산에 특화되어 있어서 이미지당 처리 시간을 줄일 수 있습니다.

반응형

'Coding > DeepLearning' 카테고리의 다른 글

학습 관련 기술들 - 최적화  (0) 2020.03.10
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 1  (0) 2020.02.29
Perceptron 퍼셉트론이란?  (0) 2020.02.29

+ Recent posts