기금넷 공식사이트 - 재경 문답 - 프로그래머가 딥 러닝을 배워야 하는 이유
프로그래머가 딥 러닝을 배워야 하는 이유
Fei Lianghong: 프로그래머는 왜 딥러닝을 배워야 할까요?
딥러닝 자체는 매우 거대한 지식 시스템이다. 이 기사는 프로그래머의 관점에서 시작하여 프로그래머에게 딥 러닝이 어떤 의미인지, 빠르게 발전하는 분야를 어떻게 활용하여 프로그래머의 소프트웨어 개발 능력을 향상시킬 수 있는지 살펴보겠습니다.
이 글은 Fei Lianghong이 2016 QCon 글로벌 소프트웨어 개발 컨퍼런스(상하이)에서 한 연설을 바탕으로 작성되었습니다.
서문
1973년 미국에서 인기 SF 영화 '웨스트월드'가 개봉했고, 3년 뒤 '퓨처월드'라는 속편이 나왔다. 이 영화는 1980년대 초 '미래세계'라는 제목으로 중국에 소개됐다. 그 영화는 나에게 정말 충격적이었다. 영화에는 표정이 풍부한 얼굴 아래에 집적 회로 기판이 있는 로봇이 많이 등장합니다. 이것은 당시 나에게 미래 세계가 너무 멀고 신비롭다는 느낌을 갖게 했습니다.
2016년이 도래했고, 많은 친구들이 HBO가 많은 시간을 투자한 동일한 주제의 'WestWorld' 시리즈를 팔로우하고 있을 것입니다. 앞선 두 영화가 여전히 로봇, 인공지능 등의 주제에 국한됐다면, 2016년 새 드라마는 인공지능에 대한 스토리와 사고에서 획기적인 발전을 이뤘다. 더 이상 로봇이 인간을 위협할지 여부가 아니라 "꿈은 주로 추억이다"와 같은 더 철학적인 질문에 관한 것입니다.
'기억이 지능에 어떤 영향을 미치는가'라는 주제는 우리가 생각해 볼 가치가 매우 높으며, 오늘날 인공지능 분야가 어떤 발전과 발전을 이루었는지를 우리에게 좋은 계시로 제공해 준다.
오늘 논의할 주제는 단순한 인공지능만이 아닙니다. 딥러닝에 관심이 있는 분들이라면 검색엔진에서 비슷한 관련 키워드를 검색해 보셨을 거라 믿습니다. 구글에서 딥러닝을 키워드로 사용했더니 2,630만 건의 검색 결과가 나왔습니다. 이 수치는 일주일 전보다 300만 건 이상 늘어난 결과입니다. 이 수치는 딥러닝 관련 콘텐츠의 발전 속도를 보여주기에 충분하며, 딥러닝에 대한 사람들의 관심이 점점 더 높아지고 있습니다.
또 다른 관점에서 딥러닝이 시장에서 얼마나 인기가 있는지 알아주셨으면 좋겠습니다. 2011년부터 현재까지 인공지능, 딥러닝 분야 스타트업을 140개 이상 인수했다. 2016년에만 40건 이상의 인수합병이 발생했습니다.
그 중 가장 미친 것은 11개 인공지능 스타트업을 인수한 구글인데, 그 중 가장 유명한 것이 이세돌 9단을 꺾은 딥마인드다. 그 다음으로는 애플, 인텔, 트위터 순이다. 인텔을 예로 들면, 올해에만 Itseez, Nervana, Movidius 등 3개의 스타트업을 인수했습니다. 이번 일련의 대규모 인수합병은 인공지능과 딥러닝 분야를 확장하는 것을 목표로 하고 있습니다.
딥러닝 주제를 검색하면 Gradient descent(경사하강 알고리즘), Backpropagation(역전파 알고리즘), Convolutional Neural Network(컨볼루셔널 신경망), 제한된 Boltzmann 머신(Restricted 볼츠만 머신) 등
기술 관련 기사를 열면 곳곳에 다양한 수학 공식이 나와 있습니다. 보시다시피 아래 왼쪽 그림은 실제로는 고급 학술 논문이 아니라 위키피디아에서 가져온 볼츠만 기계에 대한 소개일 뿐입니다. Wikipedia는 대중 과학 수준의 콘텐츠이며 콘텐츠의 복잡성은 대부분의 수학적 지식의 능력을 초과합니다.
이러한 맥락에서 오늘 저의 주제는 세 가지로 요약될 수 있습니다. 첫째, 딥러닝을 배워야 하는 이유, 둘째, 딥러닝의 핵심 핵심 개념은 신경망이고, 그렇다면 신경망이란 정확히 무엇입니까? 셋째, 프로그래머로서 딥러닝 개발자가 되고자 할 때 어떤 툴박스가 필요하며, 어디서 개발을 시작해야 할까요?
딥러닝을 배워야 하는 이유
먼저 딥러닝을 배워야 하는 이유에 대해 이야기해보겠습니다. 이 시장에서 가장 빼놓을 수 없는 것은 다양한 컨셉의 어휘와 다양한 패셔너블한 신기술이다. 딥러닝은 무엇이 다른가요? 나는 Andrew Ng가 사용한 비유를 정말 좋아합니다.
그는 딥러닝을 로켓에 비유했습니다. 이 로켓의 가장 중요한 부분은 엔진이다. 현재 이 분야에서 엔진의 핵심은 신경망이다. 우리 모두 알고 있듯이 로켓에는 엔진 외에 연료가 필요하므로 빅데이터는 실제로 로켓 전체의 또 다른 중요한 구성 요소인 연료를 구성합니다. 예전에는 빅데이터를 이야기할 때 데이터를 저장하고 관리하는 능력을 더 강조했지만, 이러한 방법과 도구는 과거 이력 데이터의 통계와 요약에 더 가깝습니다.
미래에 알려지지 않은 일에 대해서는 이러한 전통적인 방법으로는 빅데이터로부터 예측적 결론을 도출하는 데 도움이 되지 않습니다. 신경망과 빅데이터의 결합을 생각해 보면 빅데이터의 진정한 가치와 의의를 명확하게 알 수 있다. Andrew Ng는 "우리는 (신경망으로 대표되는 딥러닝)이야말로 인공지능에 가장 가까운 접근 방식을 얻을 수 있는 지름길이라고 믿습니다."라고 말한 적이 있습니다. 이것이 우리가 딥러닝을 배워야 하는 가장 중요한 이유 중 하나입니다.
둘째, 우리의 데이터 처리 및 컴퓨팅 능력이 지속적으로 향상되면서 딥러닝으로 대표되는 인공지능 기술은 전통적인 의미의 인공지능 기술에 비해 성능면에서 급속한 발전을 이루었습니다. 이는 주로 지난 수십 년 동안 컴퓨터 및 관련 산업의 지속적인 발전에 기인합니다. 인공지능 분야에서 딥러닝을 선택하는 또 다른 중요한 이유는 성능입니다.
엔비디아가 자율주행 분야에 딥러닝을 적용한 내용을 올해 공개한 영상이다. 3,000마일만 훈련하면 자율주행에 딥러닝을 적용하면 어느 정도 수준에 도달할 수 있는지 알 수 있다. 올해 초에 진행된 실험에서 이 시스템은 아직 진정한 지능 기능을 갖추지 못했고 다양한 무서운 상황을 자주 경험했으며 경우에 따라 수동 개입이 필요한 경우도 있었습니다.
그러나 3,000마일의 훈련을 마친 후, 우리는 산악 도로, 고속도로, 진흙 등 다양하고 복잡한 도로 조건에서 자율 주행이 매우 놀라운 성능을 발휘한다는 것을 확인했습니다. 이 딥 러닝 모델은 몇 달, 3,000마일 동안만 훈련되었습니다.
이 모델을 계속해서 개선한다면 이 처리 능력은 얼마나 강력해질 것인가. 이 시나리오에서 가장 중요한 기술은 의심할 여지 없이 딥 러닝입니다. 우리는 결론을 내릴 수 있습니다. 딥 러닝은 우리에게 강력한 기능을 제공할 수 있으며, 프로그래머에게 이 기술이 있으면 모든 프로그래머가 더욱 강력해질 것입니다.
신경망 빠른 시작
딥러닝 학습에 대해 의심의 여지가 없다면 딥러닝에 들어가기 위해 어떤 종류의 지식을 습득해야 하는지에 대한 고민도 분명히 있을 것입니다. 필드. 여기서 가장 중요한 핵심 기술은 '신경망'이다. "신경망"이라고 하면 완전히 다른 두 가지 개념을 혼동하기 쉽습니다.
하나는 생물학적 신경망이고, 두 번째는 오늘 이야기할 인공지능 신경망입니다. 아마도 여기 계신 여러분 모두는 인공지능 분야에 종사하는 친구가 있을 것입니다. 그에게 신경망에 대해 물어보면 그는 당신을 혼란스럽게 만드는 생소한 개념과 용어를 많이 던질 것이고, 당신은 멀리할 수밖에 없을 것입니다.
인공지능 신경망 개념에 대해 대부분의 프로그래머들은 자신과 거리가 멀다고 느낄 것이다. 신경망의 본질이 무엇인지 시간을 내어 여러분과 공유하는 것은 누구라도 어렵기 때문입니다. 그리고 책에서 읽은 이론과 개념도 명확하고 간단한 결론을 찾는 데 도움이 될 수 있습니다.
오늘은 프로그래머의 관점에서 신경망이 무엇인지 살펴보겠습니다. 제가 신경망의 개념을 처음 알게 된 것은 1991년 개봉한 영화 '터미네이터 2'를 통해서였습니다. 배우 Schwarzenegger의 대사는 다음과 같습니다:
"내 CPU는 네트워크 프로세서;학습하는 컴퓨터입니다."(내 프로세서는 신경 처리 장치이며 학습할 수 있는 컴퓨터입니다.) 역사적 관점에서 볼 때, 인간의 지능에 대한 탐구는 신경망에 대한 연구보다 훨씬 앞서 있었습니다.
1852년 이탈리아의 한 학자가 우연한 실수로 인간의 머리를 질산염 용액에 떨어뜨려 육안으로 신경망에 집중할 수 있는 최초의 기회를 얻었습니다. 이 사고는 인간 지능의 신비에 대한 탐구를 가속화하고 인공 지능 및 뉴런과 같은 개념의 발전을 열었습니다.
생물학적 신경망 개념의 발전은 오늘날 우리가 말하는 신경망과 어떤 관련이 있는 걸까요? 오늘 우리가 말하는 신경망은 생물학적 신경망에서 일부 용어를 차용한 것 외에는 생물학적 신경망과 전혀 관련이 없습니다. 이는 완전히 수학과 컴퓨터 분야의 개념이며, 이는 인공 지능 로고의 성숙한 발전이기도 합니다. . 누구나 이 점을 구별하고 생물학적 신경망을 오늘 우리가 말하는 인공지능과 혼동하지 말아야 합니다.
1990년대 중반에 Vapnik과 다른 사람들은 Support Vector Machines 알고리즘(Support Vector Machines)을 제안했습니다. 곧 이 알고리즘은 매개 변수 조정 필요 없음, 고효율, 전역 최적 솔루션 등과 같은 여러 측면에서 신경망에 비해 큰 이점을 보여주었습니다. 이러한 이유로 SVM 알고리즘은 빠르게 신경망 알고리즘을 물리치고 그 시대의 주류가 되었습니다. 신경망 연구는 다시 한번 빙하기에 빠졌습니다.
폐기된 지 10년이 지났지만 몇몇 학자들은 여전히 연구에 매달렸다. 가장 중요한 사람 중 한 명은 캐나다 토론토 대학의 Geoffery Hinton 교수입니다. 2006년에는 유명 잡지 '사이언스'에 논문을 게재하며 처음으로 '깊은 신념 네트워크' 개념을 제안했다.
기존 학습 방법과 달리 '심층 신념 네트워크'에는 신경망의 가중치가 최적에 가까운 값을 쉽게 찾을 수 있도록 하는 '사전 학습' 프로세스가 있습니다. 전체 네트워크의 훈련을 최적화하는 "미세 조정" 기술. 이 두 가지 기술을 사용하면 다층 신경망 학습 시간이 크게 단축됩니다. 그는 논문에서 다층 신경망과 관련된 학습 방법에 '딥 러닝'이라는 새로운 용어를 붙였습니다.
이윽고 음성인식 분야에도 딥러닝이 등장했습니다. 그러다가 2012년에는 딥러닝 기술이 이미지 인식 분야에서 큰 발전을 이루었습니다. Hinton과 그의 학생들은 ImageNet 대회에서 1,000개의 카테고리가 포함된 100만 개의 이미지에 대해 다층 컨벌루션 신경망을 성공적으로 훈련했으며, 분류 오류율 15%를 달성했습니다. 이는 2위보다 거의 11%포인트 높은 수준입니다.
이 결과는 다층 신경망 인식 효과의 우수성을 충분히 입증합니다. 이후 딥러닝은 새로운 황금기를 맞이했습니다. 우리는 당시 시작된 딥러닝과 신경망의 발전이 오늘날 급속히 발전하고 있는 모습을 봅니다.
신경망을 사용하여 분류기를 구축합니다. 이 신경망의 구조는 무엇입니까?
사실 이 구조는 매우 간단합니다. 이 그림은 간단한 신경망의 개략도라는 것을 알 수 있습니다. 신경망은 본질적으로 "유향 그래프"입니다. 그래프의 각 노드에는 생물학적 용어를 빌려온 "뉴런"이라는 새로운 용어가 있습니다. 뉴런을 연결하는 방향선(방향성 호)은 "신경"으로 간주됩니다. 이 그림에서 가장 중요한 것은 뉴런이 아니라, 가장 중요한 것은 뉴런을 연결하는 신경입니다. 각 신경 부분에는 방향성이 있으며 각 뉴런은 다음 계층의 노드를 가리킵니다.
노드는 계층적이며 각 노드는 이전 레이어의 노드를 가리킵니다. 같은 레벨의 노드는 연결되지 않으며 이전 레벨의 노드와 교차할 수 없습니다. 각 호에는 일반적으로 "가중치"라고 부르는 값이 있습니다. 가중치를 통해 공식을 사용하여 그들이 참조하는 노드의 값을 계산할 수 있습니다. 이 무게 값은 무엇입니까? 우리는 훈련을 통해 결과를 얻습니다. 초기 할당은 난수로 시작하는 경우가 많으며 실제 값에 가장 가까운 훈련 결과를 모델로 사용하고 반복적으로 사용할 수 있습니다. 이 결과를 우리는 훈련된 분류기라고 부릅니다.
노드는 입력 노드와 출력 노드로 나뉘며, 중간을 히든 레이어라고 합니다. 간단히 말하면, 데이터 입력 항목이 있고, 중간에 있는 신경망 레이어의 여러 레이어를 우리는 히든 레이어라고 부릅니다. 이러한 수준은 우리에게 보이지 않기 때문에 이렇게 불립니다. 출력 결과는 출력 노드라고도 하며, 입력 노드도 제한된 수입니다. 이는 우리가 설계할 수 있는 모델의 일부입니다.
간단하게 비유하자면 4계층 신경망을 이용해 설명하고 싶습니다. 왼쪽에는 입력 노드가 있는데, 이는 다양한 사과의 RGB 값, 맛 또는 기타 입력 데이터 항목을 나타낼 수 있습니다. 중간 은닉층은 우리가 설계한 신경망입니다. 이 네트워크는 이제 다양한 수준을 가지며, 수준 간 가중치는 지속적인 훈련의 결과입니다.
최종 출력 결과는 출력 노드에 저장됩니다. 매번 흐름 방향처럼 신경도 방향을 가지며 서로 다른 레이어를 통해 서로 다른 계산을 수행합니다. 히든 레이어에서는 각 노드의 입력 결과가 계산되어 다음 레이어의 입력으로 사용됩니다. 최종 결과는 출력 노드에 저장됩니다. 특정 값을 얻으면 출력 값이 됩니다. 특정 카테고리로 나뉘게 됩니다. 이것이 신경망 사용에 대한 간략한 개요입니다.
왼쪽에서 오른쪽으로 표현한 구조도 외에도 신경망을 아래에서 위로 표현하는 일반적인 표현 형태도 있습니다. 이때 입력 레이어는 그림의 아래쪽에 있고 출력 레이어는 그림의 위쪽에 있습니다. 왼쪽에서 오른쪽으로 표현하는 형식은 Andrew Ng와 LeCun의 문헌에서 주로 사용됩니다. Caffe 프레임워크에서는 상향식 표현이 사용됩니다.
간단히 말하면 신경망은 신비롭지 않습니다. 신경망에는 이미지가 있고 그래프의 처리 능력을 사용하여 특징을 추출하고 학습하는 데 도움이 됩니다. 2006년 Hinton의 유명한 논문에서는 딥러닝을 가장 중요한 세 가지 요소인 계산, 데이터, 모델로 요약했습니다. 이 세 가지 포인트를 통해 딥러닝 시스템을 구현할 수 있습니다.
프로그래머에게 필요한 도구 상자
프로그래머에게 이론 지식을 익히는 것은 더 나은 프로그래밍 실습을 위한 것입니다. 그럼 딥러닝 실습을 시작하기 위해 프로그래머들이 어떤 도구를 준비해야 하는지 살펴보겠습니다.
하드웨어
하드웨어 측면에서 우리에게 필요한 컴퓨팅 성능으로 가장 먼저 떠오르는 것은 CPU입니다. 일반적인 CPU 아키텍처 외에도 추가 승수를 갖춘 CPU도 컴퓨팅 성능을 높이는 것으로 나타났습니다. 또한 필기 인식, 음성 인식 및 기타 전용 신호 프로세서와 같은 다양한 분야의 DSP 애플리케이션 시나리오가 있습니다. 또 다른 카테고리는 현재 딥러닝 애플리케이션에서 인기 있는 분야인 GPU입니다. 마지막 카테고리는 FPGA(Programmable Logic Gate Array)입니다.
이 네 가지 방법은 각각 장점과 단점이 있으며, 제품마다 매우 다릅니다. 이에 비해 CPU는 컴퓨팅 성능은 약하지만 데이터 읽기, 파일 관리, 인간-컴퓨터 상호 작용 등 관리 및 스케줄링에 능숙하고 도구도 풍부합니다. DSP의 관리 기능은 상대적으로 약하지만 특정 컴퓨팅 기능을 강화합니다.
둘 다 계산 문제를 해결하기 위해 높은 클럭 속도에 의존하며, 재귀 연산이 많고 분할이 불편한 알고리즘에 적합합니다. GPU의 관리 기능은 약하지만 컴퓨팅 성능은 더욱 강력합니다. 그러나 컴퓨팅 유닛의 수가 많기 때문에 알고리즘은 전체 데이터의 스트림 처리에 더 적합합니다.
FPGA는 관리와 연산처리에 강하지만 개발주기가 길고 복잡한 알고리즘 개발이 어렵다. 실시간 성능 측면에서는 FPGA가 가장 높습니다. 현재 개발 상황만 보면 일반 프로그래머가 실제로 일반적으로 사용하는 컴퓨팅 리소스는 여전히 CPU와 GPU 모델이며, GPU가 가장 인기 있는 분야입니다.
이번 공유를 위해 그저께 준비한 AWS상의 p2 인스턴스입니다. 몇 가지 명령어만으로 인스턴스 업데이트, 드라이버 설치, 환경 설정이 완료됩니다. 총 리소스 생성 및 설정 시간은 약 10분 정도 소요됩니다. 이전에는 위에서 언급한 컴퓨터를 설치하고 디버깅하는 데 이틀이 걸렸습니다.
또한 비용 측면에서도 비교가 가능합니다. p2.8xLarge 인스턴스 비용은 시간당 7.20달러입니다. 내 컴퓨터의 총 비용은 ?16,904위안이었습니다. 이 비용은 p2.8xLarge를 350시간 이상 사용하기에 충분합니다. 1년 안에 AWS Deep Learning Station을 사용하면 모든 노력을 상쇄할 수 있습니다. 지속적인 기술 업그레이드를 통해 인스턴스를 지속적으로 업그레이드할 수 있으므로 제한된 비용으로 더 크고 더 많은 처리 리소스를 얻을 수 있습니다. 이것이 바로 클라우드 컴퓨팅의 가치입니다.
클라우드 컴퓨팅과 딥러닝은 어떤 관계가 있나요? 올해 8월 8일 IDG 웹사이트에 이 주제에 관한 기사가 게재되었습니다.
기사에서는 다음과 같이 예측했습니다. 딥 러닝의 병렬 기능이 지속적으로 향상되고 클라우드 컴퓨팅이 제공하는 처리 능력도 계속 발전한다면 이 둘의 결합은 차세대 딥 러닝을 탄생시켜 더 큰 영향력을 가져올 수 있습니다. 그리고 영향. 모두가 고민하고 주목해야 할 방향이에요!
소프트웨어
하드웨어의 기본 환경에 딥러닝이 추가됩니다. 프로그래머는 개발과 관련된 소프트웨어 리소스에 대해 더 많은 관심을 갖게 될 것입니다. 여기에는 제가 사용한 몇 가지 소프트웨어 프레임워크와 도구가 나열되어 있습니다.
Scikit-learn은 가장 인기 있는 Python 기계 학습 라이브러리입니다. NumPy, SciPy 및 matplotlib를 기반으로 하는 간단하고 효율적이며 매우 풍부한 데이터 마이닝/데이터 분석 알고리즘 구현, 데이터 탐색 분석, 데이터 시각화에서 알고리즘 구현까지의 전체 프로세스가 통합되어 있습니다. 매우 풍부한 학습 문서.
Caffe는 볼륨과 신경망, 이미지 처리에 중점을 두고 있습니다. 그러나 Caffe는 오랫동안 업데이트되지 않았습니다. 이 프레임워크의 주요 개발자 중 한 명인 Jia Yangqing도 올해 Google로 직장을 옮겼습니다. 아마도 한때 지배적이었던 위치가 다른 사람들에게 자리를 내줄 수도 있습니다.
Theano는 매우 유연한 Python 머신러닝 라이브러리입니다. 연구 분야에서 매우 인기가 높으며 사용이 매우 편리하고 복잡한 모델을 정의하기 쉽습니다. Tensorflow의 API는 Theano와 매우 유사합니다. 저는 올해 베이징에서 열린 QCon 컨퍼런스에서도 Theano에 관한 주제를 공유했습니다.
Jupyter 노트북은 ipython을 기반으로 한 매우 강력한 Python 코드 편집기로 웹페이지에 배포되어 매우 편리하게 대화형 처리에 사용할 수 있습니다.
Torch는 뛰어난 머신러닝 라이브러리입니다. 이는 상대적으로 틈새 시장인 Lua 언어로 구현됩니다. 하지만 LuaJIT를 사용하기 때문에 프로그램의 효율성은 뛰어납니다. Facebook은 인공 지능 분야에서 Torch에 중점을 두고 있으며 Torchnet 프레임워크의 자체 업그레이드 버전을 출시하기도 했습니다.
딥러닝을 위한 프레임워크가 너무 많아서 좀 부담스럽지 않나요? 오늘 제가 프로그래머들에게 중점적으로 소개할 것은 TensorFlow입니다. 구글이 2015년 출시한 오픈소스 머신러닝 기반 개발 프레임워크다. 구글의 2세대 딥러닝 프레임워크이기도 하다. 많은 회사에서 TensorFlow를 사용하여 매우 좋은 결과를 얻은 흥미로운 애플리케이션을 많이 개발했습니다.
TensorFlow로 무엇을 할 수 있나요? 정답은 회귀 모델, 신경망, 딥러닝에 적용할 수 있다는 것입니다. 딥러닝 측면에서는 분산 표현, CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), 장단기 기억 인공 신경망(LSTM)을 통합합니다.
Tensorflow에 대해 가장 먼저 이해해야 할 개념은 Tensor입니다. 이 단어의 사전 정의는 일부 벡터, 스칼라 및 기타 텐서 간의 선형 관계를 나타내는 데 사용할 수 있는 다중 선형 함수인 텐서입니다. 사실 이 표현은 내 언어로는 Tensor가 그냥 "N차원 배열"이라는 표현을 이해하기 어렵습니다.
TensorFlow를 사용하려면 프로그래머로서 TensorFlow의 몇 가지 기본 개념을 이해해야 합니다. TensorFlow는 컴퓨팅 작업을 나타내기 위해 그래프를 사용하고, 데이터를 유지하기 위해 Tensor를 사용합니다. 변수(Variable)를 통해 피드 및 페치를 사용하여 임의 작업(임의 작업)에 값을 할당하거나 데이터를 얻습니다.
한 문장으로 요약하면 TensorFlow는 상태 다이어그램을 갖춘 데이터 흐름 그래프 컴퓨팅 환경입니다. 각 노드는 데이터 작업을 수행한 후 종속성과 방향성을 제공하여 완전한 데이터 흐름을 제공합니다.
TensorFlow 설치는 매우 간단하지만 공식 홈페이지에서 다운로드할 수 있도록 제공되는 설치 패키지에서 지원하는 CUDA 버전은 7.5입니다.
CUDA 8의 흥미로운 새로운 기능과 곧 공식적으로 출시될 현재 상황을 고려합니다. Tensorflow 소스 코드를 컴파일해야만 얻을 수 있는 CUDA 8을 즉시 경험해 보고 싶을 수도 있습니다. 현재 TensorFlow는 이미 Python2.7, 3.3+를 지원합니다.
또한 Python 언어를 사용하는 프로그래머는 numpy, protobuf 등과 같은 일부 필수 라이브러리도 설치해야 합니다. 컨볼루션 처리의 경우 cuDNN이 가장 성능이 좋은 개발 라이브러리로 인정받고 있으니 꼭 설치해 보세요. 일반 Tensorflow 설치는 매우 간단합니다. 다음 명령 하나만으로 충분합니다:
$ pip3 install —upgrade /anishathalye/neural-style. 벨로루시의 현대 인상파 예술가 레오니드 아프레모프(Leonid Afremov)는 두꺼운 잉크와 무거운 색상을 사용하여 도시와 풍경 테마, 특히 비오는 장면 시리즈를 표현하는 데 능숙합니다. 그는 빛과 그림자 효과를 만들기 위해 큰 컬러 블록을 사용하는 데 익숙하며, 반사되는 물체와 주변 색상을 매우 정확하게 파악합니다.
그래서 상하이에 있는 동방명주 TV 타워 사진을 찾았습니다. 텐서플로우를 통해 레오니드 아프레모프의 그림 스타일을 배우고 이 사진을 빛과 그림자의 풍부한 작업 스타일로 가공해 보고 싶습니다. 위에서 언급한 프로젝트의 코드와 Tensorflow를 이용하여 AWS p2 형태의 인스턴스에 대해 천 번의 반복을 수행하였고, 처리 결과는 아래와 같이 얻어졌습니다.
이 처리를 위한 코드는 350줄에 불과하며, 모델은 2014년 이미지넷 대회에서 유명해진 스타인 VGG를 사용했다. 이 모델은 매우 훌륭하며 그 특징은 "go depper"입니다.
TensorFlow는 모두가 웃을 수 있는 엔터테인먼트일 뿐만 아니라 더 흥미로운 일을 할 수 있는 작품을 만듭니다. 지금 바로 처리 기능을 비디오로 확장하면 반 고흐의 유명한 작품 "별이 빛나는 밤"의 스타일을 사용하여 이러한 새로운 비디오 스타일을 만들어낸 아래와 같은 효과를 볼 수 있습니다.
이런 처리 능력이 더 많은 분야에 적용된다면 어떤 마법 같은 결과가 나올지 상상이 가시나요? 전망은 밝으며 우리가 무한한 백일몽을 꿀 수 있게 해줍니다. 실제로 우리가 현재 하고 있는 많은 분야의 애플리케이션 개발은 신경망과 딥러닝을 활용하면 변화될 수 있습니다. 딥러닝의 경우 마스터하는 것은 어렵지 않습니다. 모든 프로그래머는 이 기술을 쉽게 익힐 수 있으며, 사용 가능한 리소스를 사용하여 빠르게 딥 러닝 프로그램 개발자가 될 수 있습니다.
결론
우리는 미래가 어떤 모습일지 예측할 방법이 없습니다. 작가 레이 커즈와일(Ray Kurzweil)은 2005년에 "The Singularity is Near"라는 책을 썼습니다. 이 책에서 그는 머지않아 그런 시대가 올 것이라고 분명히 말한다. 그 시대가 시작되기 전의 집단으로서 우리는 이 과정을 가속화하고 이 꿈을 실현하는 방법을 배우는 능력을 사용할 능력이 있습니까?
중국 인공지능의 발전
물론 이 시대에 필요한 것은 인공지능을 숙달하고 인공지능으로 구체적인 문제를 해결하는 엔지니어이다. . 솔직히 말해서, 아직 시장에는 이런 유형의 엔지니어가 거의 없습니다. 직장의 급여 패키지는 이와 같은 엔지니어가 얼마나 인기가 있는지를 보여줄 수 있습니다. 인공지능이라는 주제는 오늘날까지 발전해왔고, 학문적으로도 대규모로 산업화할 수 있는 능력을 갖추고 있다.
그래서 엔지니어의 최우선 과제는 인공지능 응용 기술을 하루라도 빨리 익히는 것이다. 이미 인터넷에는 인공지능에 관한 학습 자료가 많이 있다고 할 수 있는데, 빨리 학습할 수 있는 능력을 갖춘 엔지니어들이 인공지능의 흐름에서 두각을 나타낼 것입니다.
중국은 이미 인공지능 산업을 발전시킬 수 있는 환경을 갖추고 있다. 기업 환경, 인력의 질, 심지어 시장 기회에 관계없이 산업 변화를 위한 모든 조건을 갖추고 있습니다. 미국에 비하면 인공지능의 여러 분야에서 중국 팀의 성과는 미미하다고 할 수 있다. 인공 지능의 기술 수준에 관한 한 중국 엔지니어는 세계 최고의 기술 팀과 동일한 출발선에 있습니다.
시간은 누구도 기다려주지 않으며, 중국 엔지니어들은 이 분야에서 자신의 재능을 보여줄 기회를 갖게 될 것입니다.
그러나 두 가지를 피해야 한다는 점은 주목할 만하다. 첫째, 너무 높은 목표를 세우고 맹목적으로 외국과 비교하는 것이다. 결국 축적에는 단점이 있고 기술에는 고유한 전문성이 있습니다. 기존 축적을 기반으로 점진적인 돌파구를 모색해야 합니다. 두 번째는 시장 동향에 성급하게 접근하고 맹목적으로 추구하는 것입니다. 인공지능 공학은 기초 축적이 많이 필요하고, 단순히 하루아침에 복사한다고 해서 성공할 수는 없습니다.
인공지능 분야에서 중국의 과학 연구와 기술 인력이 이룩한 성과는 누구에게나 명백하다. 왕용강의 글에서 그는 2013년부터 2015년까지 SCI에 포함된 '딥러닝' 논문을 집계했다. 2014년과 2015년에는 중국이 미국을 제치고 선두에 섰다.
또 놀랐던 점은 Google의 Jeff Dean이 2016년에 "TensorFlow: 대규모 기계 학습을 위한 시스템"이라는 제목의 논문을 발표했다는 것입니다. 해당 기사를 쓴 22명의 저자 중 명백히 중국 이름을 가진 사람들이 5분의 1을 차지합니다. 인공 지능 분야의 중국/중국 유명인을 나열하려면 Ng Enda, Sun Jian, Yang Qiang, Huang Guangbin, Ma Yi, Zhang Dapeng... 쉽게 긴 목록을 지정할 수 있습니다.
현재 중국의 최우선 과제는 인공지능 기술의 산업화입니다. 그래야만 과학 연구/지능 분야의 장점을 종합적이고 종합적인 장점으로 전환할 수 있습니다. 현시점에서 중국은 세계 최대의 소비시장이자 제조강국입니다. 우리는 이 분야의 선두주자가 되기 위해 시장을 활용할 수 있는 모든 기회를 갖고 있습니다.
실리콘밸리의 혁신기업
실리콘밸리에 여러 번 가봤지만 그곳에서 오랫동안 일해본 적은 없습니다. 인공 지능 분야 시장에서 우리가 더 많이 듣는 것은 Google, Apple, Intel, Amazon과 같은 일부 대형 기술 회사의 행동입니다. 하지만 미국 시장에는 인공지능 분야에서 놀라운 성과를 거두고 있는 소규모 스타트업 기업이 여전히 많다. 실리콘 밸리 지역의 기업을 예로 들어보겠습니다.
손으로 쓴 데이터에서 정보 추출을 제공하는 Captricity
음성 인식을 위한 가상 비서 서비스를 개발하는 VIVLab
TERADEEP은 FPGA를 사용하여 효율적인 컨볼루셔널 신경망 솔루션을 제공하며,
운전자 없는 솔루션을 제공하는 NetraDyne도 있습니다.
목록이 길 수도 있고, 인공지능 기술을 활용해 역사를 만들려고 노력하고 꿈을 쌓아가는 팀도 많습니다. 이들 팀과 그들이 집중하고 있는 영역은 배우고 경험할 가치가 있습니다.