전체메뉴

검색
팝업창 닫기
이메일보내기

[우리곁에 다가온 AI] 인공신경망의 군살 빼기

이석중 라온피플 대표

심층 신경망에 필요한 변수 줄이면

연산능력 열악한 환경서도 AI 가능

중요하지 않은 변수 가진 연결선 가지치기 후

재학습 반복땐 100분의 1만 사용해도 성능 비슷

이석중 라온피플 대표




수많은 분야에서 인공지능(AI) 기술이 빠르게 확산되고 있다. 여기에는 여러 요인이 있겠지만 대표적인 두 가지만 꼽는다면 오픈소스와 개발환경이다. 사실상 전통으로 자리 잡은 오픈소스 정책으로 인해 응용목적에 부합되는 신경망의 소스코드를 쉽게 구할 수 있으며 텐서플로(TensorFlow)처럼 AI를 개발하기 위한 환경(framework·프레임워크) 역시 무료로 구할 수 있고 인터넷 검색만 하면 자세한 사용법 또한 쉽게 얻을 수 있다.

프레임워크를 사용하면 신경망이 어떻게 동작을 하는지 몰라도 간단한 함수 몇 개만을 불러 쓰거나 오픈소스를 기반으로 값을 바꿔가면서 망을 구현할 수도 있다. 하지만 AI가 좋은 결과를 내더라도 최적 여부를 판단하고 싶거나 고성능 그래픽처리장치(GPU) 환경에서 동작하던 AI를 휴대폰이나 사물인터넷(IoT) 기기와 같이 상대적으로 열악한 임베디드(embedded·내장형) 환경에 이식시키기를 원한다면 신경망에 대한 좀 더 깊은 이해가 필요하다.

AI의 기반이 되는 신경망은 여러 층으로 구성되며 각각의 층에는 뉴런이라고 불리는 인공세포의 배열이 있고 층과 층 사이는 뉴런 간의 연결선으로 구성된다. 이 연결선은 매우 중요하며 연결선에는 뉴런 간의 연결강도를 정하는 변수가 있는데 학습을 통해 이 강도를 조절한다. 학습 전에는 연결강도를 알 수 없기 때문에 보통은 0과 1 사이의 무작위 값으로 초기화한다. 학습 사이클을 반복하면서 이 값을 의도하는 방향으로 점진적으로 변화시키는데 이를 통해 데이터에 내재한 어떤 패턴을 찾아내게 된다. 하지만 경우에 따라 학습이 제대로 안 되는 경우도 있는데 이런 경우에는 망의 구조를 변경시켜야 한다.



층수가 많은 심층 신경망이 적은 망보다 학습이 잘 된다는 사실이 알려지면서 이른바 딥러닝이 대세가 됐으며 요즘에는 층수가 수천 개가 되는 신경망이 사용되기도 한다. 하지만 망이 깊어지면 연결선의 개수도 비례해 늘어나게 되고 결과적으로 연결강도를 결정해야 할 변수가 많아지는데 고성능 GPU를 사용할 수 없는 환경에서 AI를 적용하는 데 장애요소가 된다.

심층 신경망이 좋은 결과를 내기는 하지만 실제 필요한 것보다 훨씬 많은 변수를 사용하는 경향이 있다는 사실이 여러 연구 결과를 통해서 밝혀졌으며 중요하지 않는 변수를 가진 연결선을 제거하는 가지치기(pruning)를 사용하면 신경망에 대한 군살 빼기가 가능해진다. 어떤 복권이 당첨될지 모르는 상황에서는 복권을 많이 구입하면 당첨 확률이 올라가듯이 깊은 망을 사용하면 최적의 결과를 내는 망을 포함할 확률이 올라가고, 최적의 결과가 나왔다면 이후는 군살 빼기 작업을 통해 망을 줄이면 된다. 가지치기를 하고 재학습 과정을 반복하면 원래의 10분의1 또는 100분의1만 사용해도 비슷한 성능을 낼 수 있다. 이렇게 변수의 수를 대폭 줄이면 연산능력이 열악한 임베디드 환경에서도 AI를 적용할 수 있게 된다.
< 저작권자 ⓒ 서울경제, 무단 전재 및 재배포 금지 >
주소 : 서울특별시 종로구 율곡로 6 트윈트리타워 B동 14~16층 대표전화 : 02) 724-8600
상호 : 서울경제신문사업자번호 : 208-81-10310대표자 : 손동영등록번호 : 서울 가 00224등록일자 : 1988.05.13
인터넷신문 등록번호 : 서울 아04065 등록일자 : 2016.04.26발행일자 : 2016.04.01발행 ·편집인 : 손동영청소년보호책임자 : 신한수
서울경제의 모든 콘텐트는 저작권법의 보호를 받는 바, 무단 전재·복사·배포 등은 법적 제재를 받을 수 있습니다.
Copyright ⓒ Sedaily, All right reserved

서울경제를 팔로우하세요!

서울경제신문

텔레그램 뉴스채널

서울경제 1q60