본문 바로가기

Machine Learning

Deep Learning을 활용한 지도학습

Deep Learning을 활용하여 나의 문제를 해결하기 위해 지도학습을, 그 중에서도 회귀를 사용해보려고합니다.

 

문제해결 과정은 크게 4단계로 나뉩니다. 

#1. 데이터를 준비합니다.

#2. 모델의 구조를 만듭니다.

#3. 데이터로 모델을 학습 시킵니다.

#4. 모델을 이용합니다.

 

 

1. 주어진 데이터 속에서 원인(독립변수)와 결과(종속변수)를 구별합니다.

 

  - 예를 들어 공을 X개를 넣으면 Y개의 공을 되돌려주는 마법의 상자가 있다고 생각해볼까요?

    그렇다면 원인이 되는 넣는 공의 개수 X는 독립변수라고 부르고

    결과가 되는 상자에서 되돌아 나오는 공의 개수 Y는 종속변수라고 부르는 겁니다!

    주어진 데이터란 위 행위를 여러번 반복해서 나오는 넣는 공의 갯수에 따른 되돌아 나오는 공의 갯수를

    기록한 데이터를 말하는거죠

 

2. Python을 이용한 tensorflow를 활용하여 결과를 예측해주는 코드를 작성하여 모델을 만듭니다.

  - 만약 미지의 상자에 공을 1개를 넣었더니 되돌아 나오는 공이 10개였고

    공을 2개를 넣었더니 되돌아 나오는공이 20개였으며

    또 공을 3개 넣었더니 되돌아 나오는공이 30개가 됬다면요?

    모델이란 넣는 공의 개수가 X개 이니까 되돌아 나온 공의 개수 Y개 더라 라고 기계에게 알려주는 것이죠

   

3. 모델을 학습(FIT)합니다

  - 위 일련의 행위들을 기계에게 학습시켜서 어떠한 규칙을 알아내도록 하는 것이 학습(FIT)입니다.

    다시말해 원인과 결과의 인과관계가 어떤식으로 나타나는지를 학습을 통해 알아내도록 하는 것이죠

    결국 Y = 10X 라는 규칙을 알아내게 되겠지요?

 

4. 모델을 이용하여 원하는 결과를 예측합니다.

  - 결국 학습시킨 모델로 우리는  '공을 10개를 넣으면 몇개가 되돌아 나올까?' 라는 문제를 해결할 수 있게 됩니다!

    학습시킨 모델에 10이라는 수를 입력하면? 그 결과로 100을 알려주겠죠?

 


5. 직접 코드를 구현해볼까요?

  - 준비한 데이터는 이렇습니다. 

넣은 공 나온 공
1 10
2 20
3 30
4 40
5 50
6 60
7 70
8 80
1245 ???

- 알고싶은 값은? 랜덤박스에 1245개의 공을 넣었을때 몇개의 공이 되돌아 나올까요?

- 독립변수는 넣은공이고 종속변수는 나온공이죠?

- 아래와 같이 코드를 작성하여 모델을 만들고 학습시켜봅시다

- 터미널에서 보여지는 epochs는 학습의 횟수를 말하구요 loss는 손실값 즉 쉽게 말해 오차값이라고 생각하시면 됩니다. 0에 가까울 수록 예측값이 더 정확해지구요

 - 30000번 학습시키니 loss값이 8.8841e-06이네요? 즉 0.000088841... 거의 0에 근접햇죠?

 - model.predict([[1234]])로 결과 값을 예측해보니 12450.623이 나왔네요 ㅎㅎ 우리가 예상한 12450과 근접합니다

 

 

 

'Machine Learning' 카테고리의 다른 글

Deep Learning  (0) 2023.01.05
Machine Learining  (0) 2023.01.04