주요 컨텐츠로 이동

Keras 모델

Databricks 무료로 시작하기

Keras 모델이란 무엇입니까?

Keras는 Theano와 Tensorflow 기반의 딥러닝용 고차원 라이브러리입니다. Python 언어로 쓰여 광범위한 딥러닝 모델을 깔끔하고 편리하게 제작할 수 있습니다. Keras는 신경망 개발, 테스트에 관한 한 가장 애용되는 고수준 신경망 API 중 하나로 자리 잡았습니다. Keras 고수준 API 덕분에 요즘은 신경망 계층을 생성하고 복잡한 아키텍처를 설정하는 것쯤은 간단한 일이 되었습니다. Keras 모델은 시퀀스나 독립 실행형 그래프 하나로 구성됩니다. 100% 구성 방식 모듈이 여러 개 있어 이를 이리저리 조합하여 새 모델을 만들면 됩니다. 이렇게 함께 플러깅할 수 있는 구성 방식 모듈 중에는 신경층, 비용 함수, 최적화 프로그램, 초기화 방식, 드롭아웃, 손실,  활성화 함수 및 정규화 방식 등이 있습니다. 모듈 방식의 주된 장점 중 하나는 새 기능을 별도의 모듈로 손쉽게 추가할 수 있다는 점입니다. 따라서 Keras는 매우 유연하고 혁신적인 연구에 아주 적합합니다. Keras 모델은 순차적(sequential), 함수형(functional) API 두 가지 방식으로 개발하면 됩니다.Keras 모델

순차적 API 모드

순차적 API 모델은 가장 단순한 모델이며 선형 파일(pile) 계층으로 구성되어 대부분 문제점에 계층별(layer-by-layer)로 모델을 구성할 수 있습니다. 순차적 모델은 사용하기 아주 간편하지만, 토폴로지에 한계가 있습니다. 이 한계는 공유 계층으로는 모델을 구성할 수 없고 입력이나 출력이 여럿이면 안 된다는 사실에서 기인합니다.

함수형 API

반면 함수형 API는 유연성이 매우 필요한 복잡한 모델을 만드는 데 이상적입니다. 이것을 이용하면 단순히 이전 계층, 다음 계층만이 아니라 더 많이 연결되는 계층을 포함한 모델을 정의할 수 있습니다. 모델을 정의할 때는 계층 인스턴스를 만들어 이를 쌍으로 묶어 서로 직접 연결하면 됩니다. 사실, 이 모델로는 계층을 다른 모든 계층 중 어디에든 연결할 수 있습니다. 이 모델 생성법을 이용하면 샴 네트워크(Siamese network), 잔류 네트워크(Residual network)와 같은 복잡한 네트워크, 다중 입력/다중 출력 모델, DAG(Directed Acyclic Graph) 및 공유 계층을 포함한 모델 등을 생성할 수 있습니다.  

추가 자료

용어집으로 돌아가기