1. 머신러닝의 프로세스
1) 데이터를 독립변수, 종속변수로 나눔
2) 모델의 구조 생성
- 독립변수와 종속변수의 개수가 중요한 요인이 됨
: 단순 선형 회귀냐, 다중 회귀냐를 결정하는 요인일까?
3) FIT(학습)하는 함수를 call
- 학습 횟수를 입력
* 데이터의 양은 정해져 있다. 학습 횟수라는 것은 무엇을 의미할까? A. 손실 항목 참조 |
4) 예측 실행
2. 손실(Loss)
- 예측의 값과 실제 값 간 분산(차이 제곱의 평균)
- 학습의 결과를 통해 모델의 정확성을 평가하는 지표.
* 내가 해석한 학습에 대한 상상 1단계 독립변수와 종속변수 간의 관계로 방정식(모델?)을 구한다. (100% 정확한 방정식일 수가 없다.) 2단계 독립변수를 입력후, 종속변수의 값을 예측한다. 3단계 예측한 값과 종속변수 데이터 간 분산값을 통해 예측의 정확성을 도출한다. (피드백이 된다) 4단계 1단계에서 예측한 방정식을 수정하여 1~3단계를 다시 실행, loss가 낮아질 때 까지 이를 반복한다. |
3. 실습
#모델 형성
#독립변수 개수 입력
X = tensorflow.keras.layers.Input(shape=[1])
#종속변수 개수 입력
Y = tensorflow.keras.layers.Dense(1)(X)
#모델 구성
model = tensorflow.keras.models.Model(X, Y)
#어떤 모델(알고리즘)을 적용할 것인가?
model.compile(loss='mse')
#모델 학습
#epochs는 학습 횟수 / verbos는 옵션으로 추측. 0일 경우 각 횟수에 대한 화면출력을 하지 않음.
model.fit(독립변수, 종속변수, epochs=10000, verbos=0)
#모델 이용
#predict 예측 요구 함수. table을 입력하면 그 값에 대한 각각의 예측 결과가 출력된다.
model.predict(독립변수)
model.predict([[값]])
1) keras란 뭘까?
A. 라이브러리. Tensorflow에 얹어서 사용가능하다.
Java에서 라이브러리를 사용함으로써 C코드로 작성했을 때와 달리, 짧은 코드로 쉽게 작성할 수 있는 것과 같은 느낌인 라이브러리인 것 같다.
2) 그렇다면 layers는? Dense는 또 뭐란말이냐...
- layer가 변수 간 관계성을 넣는 것일까? 경우의 수? (나중에 찾아봐야할 과제)
- layer에 input(독립변수)개수를 넣고, Dense(경우의 수)를 구하기 위해 (종속변수 개수)(X)를 넣는 건 아닐까?
: 종속변수 개수 * 독립변수 개수 = 경우의 수 니까?
3) 지금 사용하고 있는 모델이 다중 퍼셉트론 모델인 것 같다. 아마도?
* 쌩뚱맞은 궁금증. google colaboration 처리에 대한 의문 : data.head() 이후에 다른 코드를 실행할 경우 table의 화면 출력이 안된다. 왜일까? |
후기. 강연자의 의도와 전혀 다르게... 궁금한게 하나만 나와도 알아야할 것 같다. 이런게 부담감이 되어서 학습이 지속되기 힘든 것인데... 조금 알 것 같은 것을 하고 있으니까 재밌어서 더 그러는 것 같다. 조심해야겠다. 조급하게 실행해서, 10000번의 학습을 시키는 데 각 횟수의 결과값을 다 출력하는 낭패를 겪었다. 이런... |
'programming > TIL' 카테고리의 다른 글
[Codility]Arrays (0) | 2020.08.26 |
---|---|
[Codility]Iterations_BinaryGap (0) | 2020.08.26 |
[머신러닝야학]Tensorflow1_1일차 (0) | 2020.08.20 |
[머신러닝야학]머신러닝1_4일차&5일차 (0) | 2020.08.20 |
[Git]command_원격저장소 (0) | 2020.08.18 |