brunch

You can make anything
by writing

C.S.Lewis

by 서진호 May 18. 2017

인공지능이 소프트웨어 개발자 모두를 먹어 치울까?

구글 IO 2017을 보면서 문득 든 생각


오늘 구글 IO 2017를 보면서 구글 CEO인 순다 피차이가 "모든 제품을 인공지능(AI)으로 다시 생각 중이다"라고 하던 찰나 문득 든 제 생각은, '그것을 만드는 우리들의 소프트웨어 개발자가 제일 먼저 적용받지 않을까?'라는 의문이 들기 시작했습니다.


지금까지 소프트웨어 개발자는...


왜냐하면 소프트웨어 개발자들은 지금까지 멀게는 UNIX 터미널 호스트부터 가깝게는 PC 시절부터 새로운 언어, 운영체제, 개발도구 등을 만들고 배우면서 인터넷 시대를 넘어 모바일 시대까지 적응해 왔습니다만 소프트웨어의 기초적인 부분이 그렇게 많이 바뀌지 않았기 때문에 적응하는데 큰 어려움은 없었습니다.

그러나 인공지능 시대에서는 전혀 다른 접근법이 필요합니다. 한 번은 제가 샌프란시스코에서 개최된 제1 회 OpenAI 밋업 모임에 갔다가 컴퓨터 공학 전공자임에도 불구하고 멘붕(?) 당했던 기억을 가지고 있습니다. 그 이유는 너무라도 많은 수학적인 수식과 특히, 편미분 같은 것을 왜 도입해야 하는지 이유를 그 당시 알지 못했습니다. 사실 머신 러닝이나 딥러닝의 전체적인 개념만 알았지 그 내부가 어떻게 굴러가는지 몰랐기 때문입니다.


속으로 저는 이것은 컴퓨터 공학에서 쓰는 데이터 구조나 알고리즘보다는 수학 자체의 알고리즘을 알아야 사용할 수 있겠구나 라는 생각이 들었습니다. 물론 그렇기 배우기 어렵고 구현하기 어려운 AI를 통해 현재까지 인류가 풀지 못한, 혹은 풀기 어려운 난제들을 해결하고 그것의 가능성을 우리는 매일 뉴스로 봅니다. 그리고 그런 AI가 앞으로 소프트웨어적으로 더욱더 많은 일을 할 수 있는 것이라고 긍정적으로 믿습니다.


[그림 1 - 순다 피차이가 구글 IO  2017 키노트에서  AutoML 발표]

모든 제품을 AI로 다시 생각하자!


그래서 아마도 순다 피차이가 "모든 제품에서 AI를 다시 생각한다고" 말했고, 구글 내부적으로는 모든 제품의 "개발 과정"까지도 다시 들여다 보고 AI 개발 프로세스를 정립해 나가는 과정이 아닐까 추측해 봅니다. 또한 요즘 구글 개발자들은 회사 내부에서 '머신 러닝'에 대해 필수적으로 학습을 받도록 권고하고 있다고 들었습니다.


계속해서 순다 피차이는 AI가 구글 제품과 서비스에 어떻게 적용되었는지 차근차근 설명하면서 Cloud GPU와 같은 하드웨어와 여러분들이 길거리를 지나다니면서 사진을 찍거나 동영상 찍을 때 상호 및 연락처를 자동적으로 인식하여 연락할 수 있도록 해 주는 구글 렌즈 등등 구글 소프트웨어의 사례들을 차례차례 보여줬습니다.


[그림 2 - 구글 렌즈 데모 영상]

소프트웨어 개발자들도 피해 갈 수 없다!


그런데, 매우 놀라운 사실은 순다 피차이는 'AutoML(Auto Machine Learning)'이라는 프로젝트를 도입하여 머신러닝 알고리즘을 이용해 특정 업무용 머신러닝 소프트웨어 설계 작업을 자동화하여 음성 또는 시각 인식, 번역 및 로봇 등에 적용되는 머신러닝 기술을 좀 더 용이하게 전환하거나 심지어 부족한 머신 러닝 전문가들과 소프트웨어 개발자들도 보다 더 뛰어난 설계를 제공하여 전체 작업 속도를 빠르게 진행하여 전문 인력을 보충하거나 대체하겠다는 생각인 것 같습니다.


예를 들어, 딥러닝 분야에서 수학의 신경망 아키텍처가 가장 중요한데, 사람의 직관으로 해결하여 언어나 시각 인식에 이를 활용한 실험을 보여준 결과, 시각 인식은 전문가와 대등하였고, 음성 인식은 전문가보다 더욱 우수했으며, 특정 업무에 생각하지 못했던 새로운 아키텍처가 제시되어서 이 AutoML 프로젝트의 새로운 가능성을 봤다고 MIT 테크놀로지 리뷰 저널에서 이야기하고 있습니다. [참고 1]


좀 더 상세히 말하자면 지금까지 구글은 이미지 인식부터 음성 인식, 머신 번역 등등 성공적으로 딥러닝 모델들을 수많은 애플리케이션이 적용시켜 왔습니다. 기본적으로 딥 러닝 머신들은 수많은 엔지니어들과 과학자들에게 의해 공들여 설계하는 것을 여러분들로 잘 알고 있을 겁니다. 수동적으로 머신 러닝 모델 설계의 처리 방법은 모든 가능한 모델들의 공간이 점점 합쳐져서 만일 기본적으로 10개 층 네트워크는 10의 10승 개 층의 후보 네트워크를 가지기 때문에 어렵습니다. [그림 3 참조]


[그림 3 - 구글의 구글넷 아키텍처]


그러한 이유 때문에 네트워크들 설계의 처리 방법은 특급 머신 러닝 전문가들에 의해 상당한 양의 시간과 실험을 종종 가해집니다. 좀 더 접근하기 위한 머신 러닝 모델의 프로세스를 생성하기 위해, 머신 러닝 모델들의 디자인을 자동화하는 방법들을 지금까지 탐색해왔습니다. 우리가 연구한 수많은 알고리즘들 사이에 특히, 진화 알고리즘(evolutionary algorithm)강화학습(reinforcement learning) 들은 수많은 문제를 해결해 왔습니다. [참고 4,5]


따라서, "AutoML"이라고 부르는 이 접근법은, 하나의 컨트롤러 뉴트럴 넷이, "자식" 모델 아키텍처를 제안할 수 있습니다. 그리고 나서 하나의 특별한 태스크(Task)에 좀 더 고급적인 방법들을 위해 훈련되고 평가될 수 있습니다. 그러한 피드백들은 다음 라운드를 위한 그 자체의 제안들을 향상하는 방법을 그 컨트롤러에게 정보를 알려줍니다. 이렇게 이 프로세스들을 몇천 번 배만큼 반복하여 새로운 아키텍처를 생성하면서, 테스팅하면서, 그 아키텍처로부터 배우기 위해 그 컨트롤러에 피드백을 줍니다.


결과적으로 그 컨트롤러는 예측할 수 있는 유효 데이터셋에서 더 나은 정확성을 가지기 위한 아키텍처 공간의 영역에 고 확률성을 할당하기 위해 학습합니다. 예를 들어, CIFAR-10와 같은 이미지 인식 방법론과 펜 트리 뱅크와 언어 모델링을 벤치마크된 데이터셋을 AutoML 접근 방법으로 진행했다고 구글 블로그에서 좀 더 기술적으로 상세히 설명해 주었습니다. [참고 2]


다시 말해서, AutoML은 인공지능을 인공지능이 스스로 소프트웨어를 설계하고 개발하고 테스트하고 피드백까지 해 주는 인공지능 소프트웨어 개발 자동화 방법이라고 볼 수 있습니다. 그렇기 때문에 더더욱 이번 AI가 우리 소프트웨어 개발자들에게 하나의 중요한 변곡점이 되지 않을까 생각합니다.


여러분들도 아시다시피 모든 직업이 이 AI에 영향을 받는데, 하물며 소프트웨어 개발자들도 예외는 아닐 것이라고 판단합니다. 현재 미국 실리콘 밸리에서는 머신러닝 전문가의 수요가 최근에 폭발하여 구인난이 상당히 심합니다. 즉, 순다 피차이는 이러한 문제를 머신 러닝을 통해 관련 인력의 수급을 해결하고자 하는 것 같습니다.

 

곧 안드로이드와 같은 경우에는 스마트폰에서 머신러닝을 사용할 수 있는 TensorFlow Lite 버전이 발표되지만, 점차 가까운 미래에는 복잡한 AI 수식도 저렴하게(?) API 수준으로 나와서 그 Function 들만 호출하면 미래가 올 것이라고 판단됩니다. 그러나 단순히 API만 알고 코딩하는 방식과 좀 더 진보된 AI를 사용해서 지능적인 코딩을 하는 것은 새로운 차원으로 접어드는 한 차원이 바뀌는 시대에 우리 소프트웨어 개발자들이 좀 더 진보된 적응력이 필요하겠다는 생각이 들었습니다.


이것은 구글뿐만 아니라 지난주에 개최되었던 마이크로소프트 빌드 행사에도 AI를 말했고, 페이스북도, 다다음주 있을 애플도, 심지어 전기 자동차를 만드는 테슬라까지, 미국뿐만 아니라 중국의 바이두 까지. 전 세계의 소프트웨어 업체들을 AI가 다 먹어 치우고 있고 파괴적인 혁신 바람이 개발자들에 곧 들이닥칠 것 같습니다.


그렇다면, 이 문제를 어떻게 해결해야 할까요?


결론은 소프트웨어 개발자들이여! AI 시대에 대비하여 나누어서 정복합시다!(Divide and Conquer)


만일 그렇지 않으면, 학습된 AI들이 우리들이 지금 하고 있는 소프트웨어를 분석하고 설계하며 코딩하는 작업을 빼앗아 갈지 모르겠습니다. 우리도 순다 피차이가 말한 것처럼 "다시 AI에 대해 생각을" 할 순간인 것 같습니다!


---------------------------------------------------------------------------------------------------------

좀 더 읽어 볼거리 


[참고 1] 저만 이런 생각을 하는 것이 아니구나 라는 것을 제가 페북의 타임라인에 적고 몇 시간 뒤에 MIT Technology Review Journel의 글을 발견하여 심지어 부족한 소프트웨어 개발자들을 AI로 대체하겠다고 하니 더 심각해 느껴졌습니다. 꼭 한번 읽어 보시기를 바랍니다.
https://www.technologyreview.com/s/607894/why-googles-ceo-is-excited-about-automating-artificial-intelligence/?set=607882


[참고 2] AutoML을 적용한 뉴럴 네트워크 아키텍처 연구
https://research.googleblog.com/2017/05/using-machine-learning-to-explore.html


[참고 3] 구글의 모두를 위한 인공지능 만들기  

https://korea.googleblog.com/2017/05/making-ai-work-for-everyone.html


[참고 4] Large-Scale Evolution of Image Classifiers, Esteban Real, Sherry Moore, Andrew Selle, Saurabh Saxena, Yutaka Leon Suematsu, Quoc Le, Alex Kurakin. International Conference on Machine Learning, 2017.

[참고 5] Neural Architecture Search with Reinforcement Learning, Barret Zoph, Quoc V. Le. International Conference on Learning Representations, 2017.





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari