본문 바로가기

Theory/DeepLearning

[Keras] 케라스로 풀어보는 다변수 입력에 대한 선형회귀 예제 - 나이, 체중에 대한 혈액지방함량 문제-

얼마전에 텐서플로우로 풀어보는 다변수 입력에 대한 선형회귀 예제라는 글로 나이, 체중을 입력하고 혈중체지방 함량을 얻어오는 선형회귀 이야기[바로가기]를 했었는데요. 그리고 그 후, ETRI의 장 박사님[바로가기]의 강력한 권고(^^)를 받아 케라스(Keras)를 학습하지 않을 수 없게 되었지요. 사실은 케라스를 이용한 프로젝트(국가가 지원해 주지 않는 단지 의지만 가진 프로젝트.ㅠㅠ. 우린 너무 가난해요.ㅠㅠ)를 시작할 수도 있거든요. 뭐 아무튼... 케라스를 급하게 공부해야 겠다고 생각하고, 자료를 찾다가, 바로 김태영님의 블록과 함께 하는 파이썬 딥러닝 케라스[바로가기]라는 책을 읽고 케라스의 세계가 정말 멋지다는 생각을 하게 되었습니다. 특히 김태영님의 설명하시는 스킬은 정말 엄청난 것 같습니다. 존경합니다.^^. 아무튼.. 그래서 그 책의 내용과 또 김태영님이 운영하시는 블로그에서 케라스 강좌[바로가기]를 참조하여 공부하다가, 문득.. 실습예제로 예전에 텐서플로우로 했던 선형회귀 예제[바로가기]를 케라스로 테스트해보고 싶어진거죠^^ 이제 시작합니다.~~~

언제나 그렇듯 필요한 모듈을 import해야죠. 텐서플로우는 버전이 1.5.0이고, 케라스는 2.1.5버전입니다. 저 Future Warning은 왜 뜨는 걸까요... 킁...

그리고, 당시 다룬 예제 파일은 [바로가기]에서 받으시구요... numpy로 받아 주었습니다^^

어떤 데이터인지 한 번 그려볼까요~^^

아~ 이렇게 생겼군요. 그 때 예제에서 다룰때도 말씀드렸지만, 데이터가 의미하는 바를 뭐 설명하지는 못하겠습니다.ㅠㅠ. 더 쉬운 용어로 되어 있는 예제를 가지고 올걸..ㅠㅠ.

그리고, 입력과 출력 데이터를 잡고.. 여기서는 꼭 훈련/검증용으로 나누지 않아도 된다고 생각합니다. 그냥 데이터가 25개뿐이기도 하고, 또 그냥 전 데이터를 다 훈련에 사용했다고 해두죠. 아무튼.. 학습률(lr)은 0.01로 두고, Dense를 하나 추가하고, loss는 mean-square-error[바로가기]로 두고, optimizer는 아까 0.01로 학습률을 적용한 rmsprop[바로가기]로 두었습니다. summary라고 할 것도 없이 간단하네요^^

fit~~~~~~~~

loss 그래프로 뿌려볼까요~~

넵~~~ 음.. 이게 괜찮다는 건지 아니라는 건지... 는 살짝 패스...

네... 100kg 체중에 40살, 60kg 체중에 25살일때의 혈중지방함량치(데이터 기준)를 보여주네요.

이번에는 가중치와 bias값을 get_weights로 얻어와서

직선을 그려보도록 하죠~ numpy가 제공하는 행렬 연산을 그냥 사용해 주기만 하면 되겠습니다^^

그리고~ 아까 처음에 그렸던 데이터에 직선을 추가하는 거죠^^

짠~~~~~ 이번 예제를 통해 keras를 사용할 기회(앞으로 장 박사님과 같이하는 일에 keras가 사용된다고 합니다.)를 주신 장 박사님과 케라스에 대해 너무나도 깔끔하게 설명해주신 김태영님께 너무 감사합니다~~~~

반응형