2.3. 케라스(Keras)

케라스(Keras)는 파이썬으로 작성된 오픈 소스 신경망 라이브러리입니다. 케라스는 딥러닝 비전문가라도 각자 분야에서 손쉽게 딥러닝 모델을 개발하고 활용할 수 있도록 직관적인 API를 제공하고 있습니다. 케라스는 텐서플로 위에서 동작하는 라이브러리 입니다. 처음 머신러닝, 딥러닝을 시작하고 매우 간단한 것을 제작하거나 빠른 시간 내에 프로토타이핑을 하고자 한다면 Keras가 훨씬 좋은 선택일 수 있습니다.

비교적 단순한 신경망을 구성하거나 기존의 갖추어진 기능만을 사용한다면 Keras만으로 충분할 수 있습니다. 하지만 역시 Tensorflow를 사용하는 쪽이 훨씬 더 디테일한 조작이 가능합니다. 따라서 사용 목적에 따라서 어느쪽을 사용할지 선택하는 것이 좋습니다.

Keras는 빠르게 딥러닝 연구 및 실험을 가능하게 하는 데에 중점을 두고 개발되었습니다. 가능한 개발 시간을 최소화하면서, 빠르게 결과를 도출할 수 있게 합니다.

Keras 는 다음과 같은 특징이 있습니다.

1) 사용자 친근성(User Friendliness)

Keras는 기계가 아닌 인간을 위해 설계된 API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)입니다. Keras는 일관성 있고 간단한 API를 제공하고, 일반적으로 필요한 사용자 작업의 수를 최소화하며, 사용자 오류 시 명확하고 실용적인 피드백을 제공합니다.

2) 모듈성(Modularity)

모델은 가능한 최소한으로의 제한하여 독립적으로 생성가능 합니다. 또한, 신경층(Neural Layers), 비용함수(Cost Functions), 최적화기(Optimizers), 초기화 스킴(Initialization Schemes), 활성 함수(Activation Functions), 정규화 스킴(Regularization Schemes)은 모두 새로운 모델을 생성하기 위해 결합할 수있는 독립 실행형 모듈입니다.

3) 쉬운 확장성(Easy Extensibility)

새로운 모듈은 (새로운 클래스와 함수로서) 추가하기 쉽습니다. 새로운 모듈을 쉽게 만들 수 있기 때문에 Keras가 고급 연구에 적합합니다.

4) Python 작업(Work with Python)

모델은 작고, 디버그하기 쉽고, 확장성이 용이한 Python을 기반으로 두고 있습니다.

그러나 코드에 오류가 발생하였을 경우 케라스 자체 에러일 수도 있고 사용한 백엔드(텐서플로우 등) 문제일 수도 있기에 원인 찾기가 쉽지 않습니다. 또한 문서화가 제대로 되어 있지 않습니다. 제공되는 함수 목록은 빨리 업데이트 되는 편이지만 함수에 대한 설명을 찾기가란 쉽지 않습니다.

직관성이 떨어지고 진입 장벽이 높은 Tensorflow와는 달리 일반 Python API 형태로 제공하다보니 사용하기가 훨씬 쉽고 사용자 친화적인 환경을 제공하고 있습니다. 향후 Python 표준 딥러닝 API 형태로 자리 잡을 가능성이 있습니다.

Tensorflow 2.x 에서 상위 수준 API로 포함되었습니다., Tensorflow 위에서 동작하는 라이브러리 텐서플로우-케라스(tf.keras)는 텐서플로우 코어 위에서 만들어졌기 때문에, 순수 텐서플로우 기능과 케라스 기능이 쉽게 섞여지고 매칭됩니다.

Last updated