인공지능 예측에 사용되는 함수 케라스 keras 가 뭐지?

2020. 12. 21. 16:33인공지능,프로그래밍

반응형

최근 유튜브나 블로그 글에 보면 인공지을 위해 필요한 텐서플로우와 함께

 

자주 등장하는 이름이 바로 케라스입니다. 

 

그럼 케라스가 무엇일까요?

 

아니 뭐하는 함수? 프로그램일까요?

 

한 번 알아보았습니다. 

 

 

 

 

 

 

구글에 'keras'라고 검색하면 바로 케라스 홈페이지가 상단에 검색되서 알아볼 수 있습니다. 

 

물론 영어로 되어 있기 때문에 한글로 번역해서 보시면 좀 쉬운데요, 

 

그래도 간단히 뭐하는 건지만 보실려면 계속 글을 보시기 바랍니다. 

 

자세한 글이나 설명은 공식 홈페이지에서... ㅋㅋ

 

 


케라스 소개를 보면

 

케라스는 기계 학습 플랫폼인 텐서플로우 위에서 실행되는 파이썬으로 작성된 딥러닝을 위한 API라고 되어 있습니다. 

 

즉 딥러딩을 쉽게 도와주는 그것도 텐서플로우를 사용할 때 도와주는 프로그램이라는 뜻입니다. 

 

그런데 이것의 형태는 API입니다. 

 

즉 전체 프로그램이 하나의 자동차라고 한다면 

 

그 중 한 가지 기능을 담당하는 부품이라고 할 수 있습니다. 

 

보통 오디오를 자동차에 장착한다고 하면 자동차의 한 구석에 전선이나 CUP 같은 반도체를 직접 고정하고 연결하는 것이 아니라 이미 완성되어 있는 하나의 오디오 박스를 가져와서 자동차의 전원 및 스피커 선들에 연결만하고 박스 자체를 잘 고정하는 것으로 부품을 조립하게 됩니다. 

 

이와 같이 케라스도 어떤 기능을 요청하면 그 결과값을 돌려주는 부품으로 되어 있고, 

 

사용하기 위해서는 어떤 신호를 줄 것인지 즉 어떤 input을 줄지 생각하고 

 

그에 맞는 형식으로 연결 즉, 입력해 주면 원하는 동작 즉 결과값을 얻을 수 있는 것입니다. 

 

따라서 이러한 프로그램을 사용하기 위해서 사용자 즉 개발자가 알아야 하는 것은 

 

어떤 선에 어떤 신호를 연결할 것인가 하는 것입니다. 

 

어떤 부품은 수많은 단자들이 있는데

 

각 단자에 어떤 선을 연결할지를 알아야 이를 동작할 수 있습니다. 

 

더 간단히 말하면 리모콘에 건전지를 넣더라도 플러스와 마이너스 단자를 잘 맞추어 넣어야 동작하는 것처럼

 

케라스를 설계한 의도대로 우리가 사용할 때 정상 동작할 것을 기대할 수 있습니다. 

 

 


그럼 케라스의 단자는 어떻게 구성되어 있을까요?

 

케라스의 데이터 구조는 '레이어'와 '모델' 이라고 설명하고 있습니다. 

 

가장 간단한 선형모델으 경우를 'Sequentialmodel'이라고 부르는데요,

 

우리가 알고 있는 날자별 혹은 시간별 데이터들이 그것이 될 수 있습니다. 

 

예를 들면 여름에 온도가 높아지고, 겨울에는 온도가 낮아지는 날짜별 온도 데이터가 있다면 

 

그리고 그것이 하나의 데이터로 구성되어 있다면 이것이 바로 Sequentialmodel 이라고 할 수 있습니다. 

from tensorflow.keras.models import Sequential

model = Sequential()

 

스텍레이어는 다음과 같이 add 함수를 사용합니다. 

from tensorflow.keras.layers import Dense

model.add(Dense(units=64, activation='relu'))

model.add(Dense(units=10, activation='softmax'))

 

모델이 준비되면 .compile( ) 함수를 사용하여 학습해 봅니다.

model.compile(loss='categorical_crossentropy', 
                    optimizer='sgd', 
                    metrics=['accuracy'])

 

대충 이런식인데요, 

 

사실 입문자라면 텐서플로우를 설치하고, 케라스를 설치하는 것부터 만만치가 않은 일입니다. 

 

설치가 성공하면 사실 절반이 성공하는 것이라고 할 수 있습니다. 

 

그리고 경험에 의하면 

 

기본 가이드의 설명이나 예제는 매우 불친절해서 

 

그대로 복사해서 붙여넣기만 해도 에러가 나는 경우가 많습니다. 

 

사실 이런것부터가 진입장벽인데요, 

 

그 장벽을 넘어서면 이제 보이는 것은 잘 보이지 않는 함수들에 대한 설명입니다. 

 

저는 어찌어찌 첫 번째 장벽을 넘었는데요, 

 

이제 함수들의 설명이 어디에 있는지 찾아보려고 합니다. 

 

다음 글에서는 그 설명들에 대해서 적어보려고 합니다. 

 

이상 글을 마칩니다. 

반응형