AI/TensorFlow 학습

6. TensorFlow 2.x - Deep Learning 소개

된다잘된다 2024. 7. 31. 11:11

참고: https://youtu.be/VVKvEL9zSqE?si=cR6uMpBlXbVDgarz

 

머신러닝과 딥러닝의 차이점은 <인공 신경망> 을 사용했는지 안했는지이다. 

머신러닝: 데이터, 학습, 예측

딥러닝: 데이터, 학습, 예측, 인공 신경만(ANN)

 

인공 신경망(Neural Network)이라고 부르는 이유는,

인간의 뇌속에서 동작하는 신경망과 유사한 방법으로 로직을 구성하기 때문이다. (단지 모양 뿐아니라, 내부적으로도 흡사하다.)

 

이전 글에서 다루었던 regression 예제들을 딥러닝과 구분하자면, 머신러닝의 예로 부를 수 있겠다.

딥러닝에서의 특징은 사람의 신경망 처럼 은닉층 (hidden layer)가 있다는 것이다. 이 은닉층을 물론 여러개를 둘 수 있다. 그럼 실제 코드로 구현하는 방법을 살펴보자.

 

logistic regression과 deep learning code를 간단히 비교하면 은닉층이 추가된 것을 볼 수 있다.

여기서 왜 노드의 개수를 8개로 했는지 궁금하겠지만....

이건 모델을 만든사람 마음이라고 해야하나? 물론 어떤 근거를 가지고 정하겠지만 현재로서는 알 수 없다.

중요한건 은닉층을 만들었다는 것이다!

 

이제 실제 코드를 보자.

학습용 데이터와 모델을 만들어준다. 

모델을 살펴보면, 입력층은 따로 나타나지 않기에 layer는 2개로 되어있다.

은닉층의 parameter가 16개인 이유는 노드의 개수에 따라 가중치와 바이어스의 값을 정해야 하기때문이다.

출력층의 parameter는 입력이 8개이므로 이에 대한 가중치 8개와 출력이 1개이므로 바이어스 1개의 합인 9개가 된다. 따라서 이 모델에서 찾아야하는 parameter는 25개가 되는 것이다.

 

학습 결과는 정확도가 1.0이다. 

그러면 이 모델에 새로운 데이터를 넣고 추론시켜보자.

 

새로운 데이터에 대해서 결과가 나왔다. 13시간 공부하면 합격이란다... 그럼 무조건 해야지!

다음 글에서는 OpenVINO에서도 했었던, MNIST, Fashion MNIST 문제를 풀어보자.