딥러닝이란 무엇인가요? 복잡한 것에 대해 간단히 말하면 신경망이란 무엇입니까? 딥러닝: 기하학적 관점

오늘날 빅데이터와 머신러닝의 맥락은 물론 그 외부에서도 인공 신경망에 관해 많은 이야기와 글이 나오고 있습니다. 이 기사에서는 이 개념의 의미를 기억하고 적용 범위를 다시 한 번 설명하며 신경망과 관련된 중요한 접근 방식인 딥 러닝에 대해 이야기하고 그 개념과 장점을 설명합니다. 특정 사용 사례의 단점.

신경망이란 무엇입니까?

아시다시피 신경망(NN)의 개념은 생물학에서 유래되었으며 인간 두뇌 구조를 다소 단순화한 모델입니다. 그러나 자연 과학의 세계를 탐구하지는 말자. 가장 쉬운 방법은 뉴런(인공 뉴런 포함)을 많은 입력 구멍과 하나의 출력이 있는 일종의 블랙 박스로 상상하는 것입니다.

수학적으로 인공 뉴런은 활성화 함수라는 함수를 사용하여 입력 신호(충격) 벡터 X를 출력 신호 벡터 Y로 변환합니다. 연결(인공 신경망 - ANN) 내에서 세 가지 유형의 뉴런 기능: 입력(외부 세계로부터 정보 수신 - 관심 있는 변수의 값), 출력(원하는 변수 반환 - 예: 예측) 또는 제어 신호)뿐만 아니라 중간 뉴런도 특정 내부("숨겨진") 기능을 수행합니다. 따라서 고전적인 ANN은 3개 이상의 뉴런 레이어로 구성되며, 두 번째 및 후속 레이어("숨겨진" 및 출력)에서 각 요소는 이전 레이어의 모든 요소에 연결됩니다.

ANN 구조의 유형을 결정하는 피드백의 개념을 기억하는 것이 중요합니다. 즉, 직접 신호 전송(신호는 입력 계층에서 숨겨진 계층을 거쳐 출력 계층으로 순차적으로 이동하고 출력 계층으로 들어감)과 네트워크에 되돌아가는 연결이 포함된 경우 반복 구조입니다. , 더 먼 뉴런에서 더 가까운 뉴런으로). 이러한 모든 개념은 ANN을 이해하는 다음 단계, 즉 신경망 훈련, 방법 분류, 각각의 작동 원리 이해로 이동하는 데 필요한 최소한의 정보를 구성합니다.

신경망 훈련

그러한 범주가 일반적으로 사용되는 이유를 잊어서는 안됩니다. 그렇지 않으면 추상 수학에서 꼼짝 못하게 될 위험이 있습니다. 실제로 인공 신경망은 특정 실제 문제를 해결하기 위한 방법의 클래스로 이해되며, 그 중 주요 문제는 패턴 인식, 의사 결정, 근사치 및 데이터 압축 문제뿐만 아니라 우리에게 가장 흥미로운 클러스터 문제입니다. 분석 및 예측.

다른 극단으로 가지 않고 각 특정 사례에서 ANN 방법의 작동에 대해 자세히 설명하지 않고 어떤 상황에서도 (교사와 함께 또는 "스스로" 학습하는 것은 신경망의 능력임을 상기시켜 보겠습니다. ”) 이것이 실제 문제를 해결하는 데 사용되는 핵심 포인트입니다.

일반적으로 ANN 교육은 다음과 같습니다.

  1. 입력 뉴런은 외부 환경으로부터 변수("자극")를 받습니다.
  2. 수신된 정보에 따라 신경망의 자유 매개변수가 변경됩니다(뉴런의 중간 계층이 작동함).
  3. 신경망 구조의 변화로 인해 네트워크는 다른 방식으로 정보에 "반응"합니다.

이것은 신경망 훈련을 위한 일반적인 알고리즘입니다(파블로프의 개를 기억해 봅시다. 예, 그것은 정확히 조건 반사 형성을 위한 내부 메커니즘입니다. 그리고 즉시 잊어버리십시오: 결국 우리의 맥락은 기술적 개념과 예를 사용하여 작동하는 것과 관련됩니다).

보편적인 학습 알고리즘은 존재하지 않으며 아마도 존재할 수 없다는 것이 분명합니다. 개념적으로 학습 접근 방식은 지도 학습과 비지도 학습으로 구분됩니다. 첫 번째 알고리즘은 각 입력("학습") 벡터에 대해 필요한 출력("목표") 벡터 값이 있다고 가정합니다. 따라서 이 두 값은 훈련 쌍을 형성하고 이러한 쌍의 전체 세트는 트레이닝 세트. 비지도 학습의 경우 훈련 세트는 입력 벡터로만 구성되며 이러한 상황은 실제 생활의 관점에서 볼 때 더 그럴듯합니다.

딥러닝

딥러닝의 개념은 다른 분류를 의미하며 다단계 신경망을 포함하는 소위 심층 구조를 훈련하는 접근 방식을 나타냅니다. 이미지 인식 분야의 간단한 예: 다른 추상적인 특징과 관련하여 점점 더 추상적인 특징을 식별하도록 기계를 가르쳐야 합니다. 즉, 전체 얼굴, 눈, 입의 표정 사이의 관계를 결정하고, 궁극적으로 수학적으로 컬러 픽셀 클러스터입니다. 따라서 심층 신경망에서는 각 기능 수준에 자체 레이어가 있습니다. 그러한 "거상"을 훈련하려면 연구원의 적절한 경험과 하드웨어 수준이 필요하다는 것은 분명합니다. 2006년에야 신경망의 딥러닝을 선호하는 조건이 개발되었습니다. 그리고 8년 후 우리는 이 접근 방식이 머신러닝에서 가져온 혁명에 대해 이야기할 수 있습니다.

따라서 우선 우리 기사의 맥락에서 다음 사항에 주목할 가치가 있습니다. 대부분의 경우 딥 러닝은 사람이 감독하지 않습니다. 즉, 이 접근 방식에는 교사 없이 신경망을 훈련시키는 것이 포함됩니다. 이것이 "심층" 접근 방식의 주요 장점입니다. 특히 심층 구조의 경우 지도 기계 학습에는 막대한 시간과 노동 비용이 필요합니다. 반면, 딥러닝은 인간의 추상적 사고를 사용하는 것이 아니라 모델링(또는 적어도 근사화하려고 시도)하는 접근 방식입니다.

평소와 같이 아이디어는 훌륭하지만 접근 방식에서 우선 보편성에 대한 주장에 뿌리를 둔 매우 자연스러운 문제가 발생합니다. 실제로 딥 러닝 접근 방식이 이미지 인식 분야에서 상당한 성공을 거두었지만 동일한 자연어 처리는 여전히 답변보다 더 많은 질문을 제기합니다. 향후 n년 내에 "인공 레오나르도 다빈치"를 창조하는 것이 가능하지 않을 것이라는 것은 분명합니다. 심지어는 적어도 말입니다! - "인공 호모 사피엔스".

그러나 인공 지능 연구자들은 이미 윤리 문제에 직면해 있습니다. "터미네이터"에서 "트랜스포머"에 이르기까지 모든 자존심이 강한 공상 과학 영화에 표현된 두려움은 더 이상 재미없어 보입니다. 현대의 정교한 신경망은 이미 그럴듯한 것으로 간주될 수 있습니다. 곤충의 뇌 활동을 모델링합니다!) 그러나 현재로서는 분명히 필요하지 않습니다.

이상적인 기술적 미래는 사람이 자신의 능력 대부분을 기계에 위임할 수 있거나 적어도 지적 작업의 상당 부분을 촉진할 수 있는 시대로 나타납니다. 딥러닝이라는 개념은 이러한 꿈을 향한 한 걸음입니다. 앞으로 나아갈 길은 멀지만 신경망과 이와 관련된 모든 개발 접근 방식이 시간이 지남에 따라 공상 과학 작가의 열망을 실현할 수 있다는 것은 이미 분명합니다.

한 회의 연설은 어떻게 인공 지능 세계에서 센세이션을 일으켰습니까? WIRED의 Natalie Wolchower는 딥 러닝 네트워크의 작동 방식에 대한 단서를 얻을 수 있는 발견에 대해 보고했습니다.

"심층 신경망"으로 알려진 알고리즘은 자동차 운전, 비디오 게임 및 바둑 챔피언을 이기고, 그림을 그리고, 과학적 발견을 하는 방법을 배웠지만 누구도 딥 러닝 알고리즘이 그렇게 잘 작동할 것이라고 기대하지 않았기 때문에 제작자를 당황하게 했습니다. 결국, 이러한 시스템은 뇌 구조에 대한 매우 모호한 아이디어(아무도 이해하지 못하는 작업)를 기반으로 했습니다.

뇌와 마찬가지로 심층 신경망에는 뉴런 층이 있으며 인공 뉴런, 즉 컴퓨터 메모리 조각만 있습니다. 뉴런이 활성화되면 다른 계층의 연결된 뉴런에 신호를 보냅니다. 딥 러닝 중에는 시스템이 외부 데이터(예: 개 사진)의 신호를 원하는 상위 수준 개념과 관련된 뉴런 계층으로 더 잘 전송할 수 있도록 네트워크의 연결이 강화되거나 약해집니다. "개". 심층 신경망이 수천 장의 개 샘플 사진을 학습한 후에는 인간과 마찬가지로 사진 속의 개도 인식할 수 있습니다. 특정 사례에서 일반 개념으로의 마법 같은 도약은 인간의 사고, 창의성 및 집합적으로 "지능"이라고 불리는 기타 능력의 기초가 되는 신경망에 힘을 부여합니다. 전문가들은 무엇이 딥러닝 네트워크를 일반화할 수 있게 했는지, 현실에 대한 이러한 인식이 인간의 두뇌와 어느 정도 유사한지 알지 못했습니다.

올해 7월, 베를린에서 열린 한 회의의 연설 녹음이 유튜브에 등장해 가능한 답을 제시했다. 그의 보고서에는나프탈리 티슈비 예루살렘 히브리 대학교의 과학자이자 신경과학자인 는 딥러닝을 설명하는 새로운 이론을 뒷받침하는 증거를 제시했습니다. Tishby는 심층 신경망이 그와 그의 동료들이 수행하는 절차인 "정보 병목 현상"을 통해 학습한다고 믿습니다.설명 신경망이 불필요한 입력 데이터와 세부 정보를 제거하고 병목 현상을 통해 정보를 "밀어내고" 일반적인 정의에 가장 적합한 기능만 남겨둔다는 아이디어입니다.컴퓨터 실험 Tishby와 그의 학생 Ravid Schwartz-Ziv는 딥러닝 중에 이 절차가 어떻게 발생하는지 보여주었습니다.

이러한 발견은 AI 커뮤니티를 흥분시켰습니다. 이미 병목 현상을 연구한 Google Research의 Alex Alemi는 "병목 현상 아이디어는 미래의 신경망 연구에서 매우 중요할 수 있다고 생각합니다."라고 말했습니다.개발됨 더 큰 신경망에 대한 이론을 탐구하기 위한 새로운 근사 방법. 병목 현상은 "신경망의 작동 방식을 이해하기 위한 이론적 도구일 뿐만 아니라 신경망의 새로운 목표와 구조를 만들기 위한 도구"로도 작용할 수 있다고 Alemi는 말했습니다.

일부 연구자들은 이 이론이 딥러닝의 성공을 완전히 설명하는지 의심하지만,카일 크랜머 대형 강입자 충돌기(Large Hadron Collider)에서 입자 충돌을 연구하기 위해 기계 학습을 사용하고 있는 뉴욕 대학교(New York University)의 한 교수는 "이것이 사실인 것 같습니다"라고 말했습니다.

딥러닝 분야의 선구자인 제프리 힌튼(Geoffrey Hinton)은 티쉬비의 강연을 보고 편지를 썼습니다. "매우 흥미롭습니다. 제대로 이해하려면 만 번 더 들어야겠지만, 요즘에는 큰 미스터리에 대한 답이 될 수도 있는 정말 독창적인 아이디어가 담긴 연주를 듣는 경우가 드물다."

이 원리가 모든 학습의 기본이라고 생각하는 티쉬비(Tishby)에 따르면, 오랫동안 기다려온 이 대답은 “학습에서 가장 중요한 부분은 망각이다”라는 뜻입니다.

병목

Tishby는 다른 연구자들이 심층 신경망에 대한 작업을 시작했을 때 정보 병목 현상에 대해 생각하기 시작했습니다. 두 개념 모두 아직 이름이 없었습니다. 티쉬비가 당시 인공지능 연구에서 문제가 되었던 인간이 서로의 말을 얼마나 잘 인식하는지에 대해 고민한 것은 1980년대였다. Tishby는 문제의 핵심이 관련성, 즉 음성 단어의 가장 중요한 특징이 무엇이며, 이를 악센트, 어법, 억양과 같은 변수와 어떻게 분리하는지에 대한 질문이라는 것을 깨달았습니다. 현실 데이터의 바다에서 우리는 어떤 신호를 찾아내는가?

Tishby는 인터뷰에서 “정보 관련성에 대한 이러한 아이디어는 여러 번 언급되었지만 제대로 표현된 적이 없습니다.”라고 말했습니다. "수년 동안 사람들은 정보 이론이 관련성에 대해 생각하는 데 부적절하다고 생각했으며 이러한 오해는 Shannon 자신에게 돌아갑니다."

정보 이론의 창시자인 클로드 섀넌(Claude Shannon)은 어떤 의미에서 정보를 순전히 수학적 의미를 지닌 0과 1이라는 추상적인 범주로 볼 수 있게 함으로써 1940년대에 정보 연구를 시작했습니다. Tishby가 말했듯이 Shannon은 "정보는 의미론과 아무런 관련이 없다"는 견해를 받아들였습니다. 그러나 Tishby는 이것이 사실이 아니라고 믿습니다. 정보 이론을 사용하면 "'관련성'을 엄격한 방식으로 정의할 수 있습니다."

X는 개 사진의 픽셀과 같은 복잡한 데이터 집합이고 Y는 '개'라는 단어와 같이 해당 데이터로 표시되는 간단한 변수라고 상상해 보세요. Y를 예측하는 능력을 잃지 않으면서 X를 최대한 압축하면 Y의 X에 관한 모든 "관련" 정보를 캡처할 수 있습니다. 1999년 논문에서 Tishby와 공동 저자인 Fernando Pereira(현재 Google에 있음)와 William Bialek( 현재 프린스턴 대학에서)는 이 가정을 수학적 최적화 문제로 공식화했습니다. 그것은 실제적인 적용이 없는 근본적인 아이디어였습니다.

“저는 지난 30년 동안 다양한 맥락에서 이 문제에 대해 생각해 왔습니다.”라고 Tishby는 말합니다. “심층 신경망이 그토록 중요해진 것은 행운입니다.”

사람들의 얼굴을 보는 눈

심층 신경망의 개념은 수십 년 동안 존재해 왔지만, 향상된 학습 방식과 더욱 강력한 컴퓨터 프로세서 덕분에 2010년대 초반에 음성 및 이미지 인식 작업 성능이 향상되었습니다. Tishby는 2014년에 이 책을 읽은 후 이러한 개선 사항과 병목 원리 사이의 잠재적 연관성을 알게 되었습니다.조항 물리학자 David Schwab과 Pankaj Mehta.

그들은 심층 신념 네트워크라고 불리는 Hinton의 알고리즘이 물리적 시스템의 세부 사항을 통해 전반적인 이해를 얻기 위해 물리학에서 사용되는 기술인 재정규화처럼 작동한다는 것을 배웠습니다. Schwab과 Mehta는 시스템이 어떤 규모에서든 프랙탈인 "임계점"에서 자석 모델에 심층 신념 네트워크를 적용했을 때 네트워크가 자동으로 재정규화와 유사한 기술을 사용하여 모델의 상태를 계산한다는 것을 발견했습니다. . 이는 생물물리학자의 말처럼 “통계 물리학의 맥락에서 관련 특징 추출과 딥러닝의 맥락에서 특징 추출이 단순히 동일하다고 불리는 것이 아니라 동일한 것”이라는 놀라운 신호였습니다.일리아 네멘만.

유일한 문제는 현실 세계가 프랙탈이 아니라는 것입니다. 크랜머는 “자연계는 귀 위의 귀가 아니라 사람의 얼굴 위의 눈이다”라고 말했다. "그러므로 [재정규화 절차]가 신경망이 이미지와 잘 작동하는 이유라고는 말할 수 없습니다." 그러나 당시 췌장암으로 화학요법을 받고 있던 티쉬비는 그 뒤에 더 폭넓은 생각이 있다는 것을 깨달았습니다. “과학과 나의 오래된 아이디어의 역할에 대해 생각하는 것은 내 치유의 중요한 부분이었습니다.”라고 그는 말했습니다.

2015년에 Tishbi와 그의 학생 Noga Zaslavsky는추정 딥러닝은 데이터가 나타내는 주제에 대한 정보를 유지하면서 불필요한 데이터를 제거하는 정보 병목 절차입니다. 심층 신경망을 사용한 새로운 실험에서는 병목 현상이 어떻게 발생하는지 보여줍니다. 한 경우에, 연구원들은 들어오는 데이터에 1 또는 0(“개” 또는 “개 아님”) 레이블을 지정하도록 훈련될 수 있는 소규모 네트워크를 사용하고 282개의 신경 연결에서 무작위 신호를 생성했습니다. 그런 다음 네트워크가 3,000개의 데이터 세트에 대한 훈련을 시작했을 때 무슨 일이 일어났는지 추적했습니다.

신경 연결이 데이터에 반응하는 방식을 조정하기 위해 대부분의 딥 러닝 절차에 사용되는 기본 알고리즘을 "확률적 경사하강법"이라고 합니다. 네트워크가 데이터를 수신할 때마다 신호는 인공 뉴런 층을 통해 계단식으로 전달됩니다. 신호가 최상위 레이어에 도달하면 최종 패턴은 이미지의 올바른 레이블(1 또는 0, "개" 또는 "개가 아님")과 비교될 수 ​​있습니다. 이 패턴과 정답 간의 차이는 교사가 시험을 수정하는 것처럼 레이어를 통해 "다시 전파"되며, 알고리즘은 각 연결을 강화하거나 약화시켜 네트워크를 개선하여 올바른 출력 신호를 생성합니다. 훈련이 진행됨에 따라 훈련 데이터의 일반적인 패턴이 연결 강도에 반영되고, 네트워크는 데이터에 올바르게 레이블을 지정하고 개, 단어 또는 단위를 인식하는 데 전문가가 됩니다.

실험에서 Tishby와 Schwartz-Ziv는 심층 신경망의 각 계층이 입력 데이터에 대해 얼마나 많은 정보를 저장했는지, 그리고 각 계층이 출력 레이블에 대해 어떤 정보를 저장했는지 추적했습니다. 과학자들은 네트워크가 이론적 정보 병목 한계, 즉 Tishby, Pereira 및 Bialek의 원본 논문에서 파생된 이론적 한계를 향해 점진적으로 수렴된다는 사실을 발견했습니다. 제한은 관련 정보를 검색할 때 시스템이 얻을 수 있는 최상의 결과를 나타냅니다. 이 경계에서 시스템은 해당 카테고리를 정확하게 예측하는 기능을 희생하지 않고 입력 데이터를 최대한 압축합니다.

Tishby와 Schwartz-Ziv는 딥 러닝이 두 단계, 즉 네트워크가 훈련 데이터에 레이블을 지정하는 방법을 학습하는 짧은 "조정" 단계와 네트워크가 일반화에서 더 좋아지는 긴 "압축" 단계로 발생한다는 흥미로운 발견을 했습니다. 이는 새로운 테스트 데이터에 라벨을 붙일 때 네트워크 성능으로 측정됩니다.

신경망이 확률적 경사하강법을 위해 연결을 조정할 때 처음에는 입력에 대해 저장하는 비트 수는 입력의 패턴을 인코딩하도록 연결이 조정되고 네트워크가 레이블 지정 시 좋은 결과를 얻음에 따라 입력에 대해 저장하는 비트 수는 거의 일정하게 유지되거나 약간 증가합니다. 일부 전문가들은 이 단계를 암기에 비유했습니다.

그런 다음 학습은 압축 단계로 이동합니다. 네트워크는 입력 데이터에 대한 정보를 압축하기 시작하여 출력 레이블과 상관관계가 있는 가장 두드러진 특징만 추적합니다. 이는 경사하강법을 반복할 때마다 무작위 상관 관계가 발생하여 네트워크에 다른 작업을 수행하고 연결을 더 강하거나 약하게 만들도록 지시하기 때문에 발생합니다. 이 무작위화는 시스템의 입력 데이터 표현을 압축한 것입니다. 예를 들어, 어떤 사진에는 집에 있는 개가 보일 수도 있고 그렇지 않을 수도 있습니다. 네트워크가 이러한 사진을 분석할 때 일부 사진에서는 집과 개 사이의 상관 관계를 "잊을" 수 있지만 다른 사진에서는 이를 거부합니다. 일반적인 개념에 대한 시스템의 이해는 특정 기능을 망각함으로써 형성됩니다. 실제로 실험에 따르면 압축 단계에서 신경망의 일반화 능력이 더 좋아지는 것으로 나타났습니다. (개 사진으로 훈련된 심층 신경망은 개가 있든 없든 다른 사진에서 테스트할 수 있습니다.)

정보 병목 현상이 모든 딥 러닝 모드를 지배하는지 아니면 압축 외에 다른 일반화 방법이 있는지는 아직 알 수 없습니다. 일부 AI 전문가들은 Tishby의 아이디어를 딥 러닝에 관한 가장 중요한 최근 이론적 발견으로 간주합니다. 하버드 대학의 AI 연구원이자 신경과학자인 Andrew Sachs는 일부 대형 신경망이 일반화되기 위해 긴 압축 단계가 필요하지 않다는 사실을 관찰했습니다. 대신 연구자들은 조기 중지라는 것을 프로그래밍하여 네트워크가 너무 많은 상관 관계를 인코딩하지 않도록 훈련 시간을 단축했습니다.

Tishby는 Sachs와 그의 동료들이 분석한 네트워크 모델이 표준 신경망 아키텍처와 다르지만 정보 병목 현상 이론이 다른 방법보다 성능을 더 잘 설명한다고 말했습니다. 더 큰 신경망에 병목 현상이 있는지에 대한 질문은 Tishby와 Schwartz-Ziv의 최근 실험에서 부분적으로 해결되었습니다. 이 실험에서 그들은 60,000개의 이미지로 구성된 MNIST 데이터베이스에서 손으로 쓴 숫자를 인식하기 위해 330,000개의 연결을 가진 훨씬 더 큰 신경망을 훈련시켰습니다. 딥러닝 알고리즘의 성능을 평가하는 것으로 잘 알려진 벤치마크입니다. 과학자들은 동일한 네트워크 수렴을 보았습니다. 그들은 또한 소규모 네트워크에서보다 훨씬 더 급격한 전환으로 구분되는 딥 러닝의 두 가지 별개의 단계를 관찰했습니다. "나는 이제 이것이 일반적인 현상이라고 완전히 확신합니다"라고 Tishby는 말했습니다.

사람과 기계

뇌가 어떻게 우리 감각의 신호를 선별하여 이를 의식적 인식 수준으로 끌어올리는가에 대한 미스터리는 뇌의 학습 과정을 재현하기를 희망했던 초기 인공지능 연구자들 사이에서 많은 관심을 불러일으켰습니다. 대부분의 경우 이미 이러한 기술 진보의 길을 포기하고 생물학적 타당성을 추구하기보다는 생산성을 높이기 시작했습니다. 그러나 생각하는 기계가 훨씬 더 큰 업적을 달성함에 따라 AI가 언젠가 실존적 위협이 될 수 있다는 두려움이 제기되면서 많은 사람들은 이러한 연구가 학습과 지능에 대한 일반적인 아이디어를 밝혀줄 것이라고 희망합니다.

인간과 기계 학습의 차이점과 유사점을 연구하는 브렌든 레이크(Brenden Lake)는 티쉬비의 발견이 "신경망의 블랙박스를 여는 중요한 단계"라고 말하면서도 뇌는 훨씬 더 복잡한 블랙박스라고 강조했습니다. 860억 개의 뉴런 사이에 수백조 개의 연결이 있는 우리의 성인 뇌는 유아기에 발생하며 여러 면에서 딥러닝과 유사할 수 있는 기본 패턴 및 소리 인식 학습 절차를 넘어서 일반화를 향상하기 위해 여러 가지 트릭을 사용할 가능성이 높습니다.

예를 들어, Lake는 딥 러닝의 두 단계가 아이들이 자신이 연구하는 손으로 쓴 편지를 배우는 방식과 유사하지 않다고 말했습니다. 아이들은 그 글자의 다른 예를 배우고 스스로 쓰기 위해 수천 개의 예를 보고 오랜 시간에 걸쳐 글자에 대한 이해를 압축할 필요가 없습니다. 그들은 한 가지 예를 통해 이를 배울 수 있습니다. Lake와 그의 동료들의 모델은 뇌가 새로운 문자를 일련의 "박자"(기존 정신적 구조)로 분해하여 문자의 개념을 사전 지식과 연결할 수 있음을 시사합니다. Lake는 표준 기계 학습 알고리즘처럼 “문자의 이미지를 픽셀의 패턴으로 생각하고 이러한 특징의 표현으로 개념을 학습하는 대신, 문자의 간단한 인과 모델을 구축하려고 합니다. 편지” 즉, 일반화에 대한 지름길을 만듭니다.

뇌에 대한 이러한 아이디어는 AI 커뮤니티에 유용할 수 있으며, 이러한 영역 간의 정보 교환을 촉진할 수 있습니다. Tishby는 그의 이론이 인간 학습에서 보다 일반적인 형태를 취하더라도 두 분야 모두에서 유용할 것이라고 믿습니다. 이 이론을 통해 우리는 실제 신경망과 인공 신경망이 어떤 유형의 문제를 해결할 수 있는지를 이미 이해할 수 있습니다. "이것은 연구할 수 있는 문제의 완전한 특성을 제공합니다"라고 Tishby는 말합니다. 이는 분류 능력을 손상시키지 않고 입력에서 노이즈를 제거할 수 있는 문제입니다. 이것은 자연스러운 시력과 음성 인식의 문제입니다. 이것이 바로 우리 두뇌가 처리할 수 있는 문제의 종류입니다.”

그러나 실제 신경망과 인공 신경망 모두 모든 세부 사항이 중요한 문제에 대처할 수 없으며 분 단위의 차이로 전체 결과가 망가질 수 있습니다. 예를 들어, 많은 사람들은 머릿속에 두 개의 큰 숫자를 빠르게 곱할 수 없습니다. “우리는 하나의 변수의 변화에 ​​매우 민감한 유사한 문제, 논리적 문제가 많이 있습니다. 분류, 개별 문제, 암호화 문제. 나는 딥러닝이 암호화 코드를 해독하는 데 결코 도움이 되지 않을 것이라고 생각합니다.”

일반화(정보 병목 현상)는 일부 세부 정보를 버리는 것을 의미합니다. 복잡한 정신 계산에는 적합하지 않지만 뇌의 주요 작업은 아닙니다. 우리는 군중 속에서 친숙한 얼굴을 찾고, 혼돈 속에서 질서를 찾고, 시끄러운 세상에서 눈에 띄는 신호를 찾습니다.

오늘날 그래프는 기계 학습 시스템에서 생성된 모델을 설명하는 가장 적합한 방법 중 하나입니다. 이러한 계산 그래프는 정점 간의 연결을 설명하는 시냅스 가장자리로 연결된 뉴런 정점으로 구성됩니다.

스칼라 중앙 또는 벡터 그래픽 프로세서와 달리 기계 학습을 위해 설계된 새로운 유형의 프로세서인 IPU는 이러한 그래프를 구성할 수 있습니다. 그래프를 조작하도록 설계된 컴퓨터는 기계 학습을 통해 생성된 그래프 모델을 계산하는 데 이상적인 기계입니다.

기계 지능의 프로세스를 설명하는 가장 쉬운 방법 중 하나는 시각화하는 것입니다. 그래프코어 개발팀은 IPU에 표시되는 이미지 모음을 만들었습니다. 인공지능의 작업을 시각화하는 Poplar 소프트웨어를 기반으로 합니다. 또한, 이 회사 연구진은 딥 네트워크에 그렇게 많은 메모리가 필요한 이유와, 문제를 해결하기 위한 솔루션이 무엇인지도 알아냈습니다.

Poplar에는 표준 기계 학습 작업을 고도로 최적화된 IPU 애플리케이션 코드로 변환하기 위해 처음부터 구축된 그래픽 컴파일러가 포함되어 있습니다. POPNN을 수집하는 것과 동일한 원리를 사용하여 이러한 그래프를 함께 수집할 수 있습니다. 라이브러리에는 일반화된 기본 요소에 대한 다양한 정점 유형 세트가 포함되어 있습니다.

그래프는 모든 소프트웨어의 기반이 되는 패러다임입니다. 포플러에서는 그래프를 사용하여 정점이 작업을 수행하고 가장자리가 정점 간의 관계를 설명하는 계산 프로세스를 정의할 수 있습니다. 예를 들어, 두 개의 숫자를 함께 더하려는 경우 두 개의 입력(더하고 싶은 숫자), 일부 계산(두 개의 숫자를 더하는 함수) 및 출력(결과)이 있는 정점을 정의할 수 있습니다.

일반적으로 꼭짓점을 사용한 작업은 위에서 설명한 예보다 훨씬 더 복잡합니다. 이는 코드렛(코드명)이라는 작은 프로그램으로 정의되는 경우가 많습니다. 그래픽 추상화는 계산 구조에 대한 가정을 하지 않고 계산을 IPU가 작동하는 데 사용할 수 있는 구성 요소로 나누기 때문에 매력적입니다.

Poplar는 이 간단한 추상화를 사용하여 이미지로 표시되는 매우 큰 그래프를 구축합니다. 그래프의 소프트웨어 생성은 IPU 리소스의 가장 효율적인 사용을 보장하는 데 필요한 특정 계산에 맞게 그래프를 조정할 수 있음을 의미합니다.

컴파일러는 기계 학습 시스템에 사용되는 표준 작업을 IPU용 고도로 최적화된 애플리케이션 코드로 변환합니다. 그래프 컴파일러는 하나 이상의 IPU 장치에 배포되는 계산 그래프의 중간 이미지를 생성합니다. 컴파일러는 이 계산 그래프를 표시할 수 있으므로 신경망 프레임워크 수준에서 작성된 애플리케이션은 IPU에서 실행 중인 계산 그래프의 이미지를 표시합니다.


정방향 및 역방향의 전체 AlexNet 훈련 주기 그래프

Poplar 그래픽 컴파일러는 AlexNet 설명을 1,870만 개의 정점과 1억 1,580만 개의 모서리로 구성된 계산 그래프로 변환했습니다. 명확하게 눈에 띄는 클러스터링은 네트워크의 각 계층에 있는 프로세스 간 강력한 통신의 결과이며 계층 간 통신이 더 쉬워집니다.

또 다른 예는 기계 학습에서 일종의 "Hello, world"인 간단한 컴퓨터 비전 데이터 세트인 MNIST에서 훈련된 단순하고 완전히 연결된 네트워크입니다. 이 데이터 세트를 탐색하는 간단한 네트워크는 Poplar 애플리케이션으로 구동되는 그래프를 이해하는 데 도움이 됩니다. 그래프 라이브러리를 TensorFlow와 같은 프레임워크와 통합함으로써 이 회사는 기계 학습 애플리케이션에서 IPU를 사용하는 가장 간단한 방법 중 하나를 제공합니다.

컴파일러를 사용하여 그래프를 구성한 후에는 실행해야 합니다. 이는 그래프 엔진을 사용하여 가능합니다. ResNet-50의 예는 그 작동을 보여줍니다.


ResNet-50 그래프

ResNet-50 아키텍처를 사용하면 반복되는 파티션에서 심층 네트워크를 생성할 수 있습니다. 프로세서는 이러한 섹션을 한 번만 정의하고 다시 호출하면 됩니다. 예를 들어, conv4 수준 클러스터는 6번 실행되지만 그래프에는 한 번만 매핑됩니다. 또한 이미지는 컨볼루션 레이어의 다양한 모양을 보여줍니다. 각 레이어에는 자연스러운 계산 형태에 따라 작성된 그래프가 있기 때문입니다.

엔진은 컴파일러에서 생성된 그래프를 사용하여 기계 학습 모델의 실행을 생성하고 관리합니다. 배포되면 그래프 엔진은 애플리케이션에서 사용되는 IPU 또는 장치를 모니터링하고 응답합니다.

ResNet-50 이미지는 전체 모델을 보여줍니다. 이 수준에서는 개별 정점 간의 연결을 식별하기 어렵기 때문에 확대된 이미지를 보는 것이 좋습니다. 다음은 신경망 계층 내 섹션의 몇 가지 예입니다.

딥 네트워크에는 왜 그렇게 많은 메모리가 필요한가요?

대규모 메모리 공간은 심층 신경망의 가장 큰 과제 중 하나입니다. 연구자들은 현대 시스템이 심층 신경망에 엄청난 양의 가중치와 활성화 값을 저장하는 데 사용해야 하는 DRAM 장치의 제한된 대역폭에 맞서 싸우려고 노력하고 있습니다.

아키텍처는 고밀도 메모리를 위한 순차 처리 및 DRAM 최적화를 위해 설계된 프로세서 칩을 사용하여 설계되었습니다. 이 두 장치 사이의 인터페이스는 대역폭 제한을 초래하고 전력 소비에 상당한 오버헤드를 추가하는 병목 현상을 발생시킵니다.

우리는 아직 인간의 뇌와 그것이 어떻게 작동하는지 완전히 이해하지 못하지만 일반적으로 별도의 대규모 메모리 저장소가 없는 것으로 이해됩니다. 인간 뇌의 장기기억과 단기기억의 기능은 뉴런+시냅스의 구조에 내장되어 있다고 믿어지고 있다. 300개가 조금 넘는 뉴런으로 구성된 신경 뇌 구조를 가진 벌레와 같은 단순한 유기체라도 어느 정도의 기억 기능을 가지고 있습니다.

기존 프로세서에 메모리를 구축하는 것은 메모리 병목 현상 문제를 피하고 훨씬 적은 전력을 소비하면서 엄청난 대역폭을 확보하는 한 가지 방법입니다. 그러나 온칩 메모리는 가격이 비싸며 현재 심층 신경망을 훈련하고 배포하는 데 사용되는 CPU 및 GPU에 부착되는 대용량 메모리용으로 설계되지 않았습니다.

따라서 오늘날 CPU 및 GPU 기반 딥 러닝 시스템에서 메모리가 어떻게 사용되는지 살펴보고 자문해 보는 것이 유용합니다. 인간의 두뇌는 메모리 저장 장치 없이도 잘 작동하는데 왜 그렇게 큰 메모리 저장 장치가 필요한가?

입력이 네트워크를 통해 전파될 때 신경망에는 입력 데이터, 가중치 및 활성화 함수를 저장하기 위해 메모리가 필요합니다. 학습 시 입력에 대한 활성화는 출력 기울기의 오류를 계산하는 데 사용될 수 있을 때까지 유지되어야 합니다.

예를 들어, 50개 레이어로 구성된 ResNet 네트워크에는 약 2,600만 개의 가중치 매개변수가 있고 1,600만 개의 정방향 활성화를 계산합니다. 32비트 부동 소수점을 사용하여 각 가중치와 활성화를 저장하는 경우 약 168MB의 공간이 필요합니다. 이러한 가중치와 활성화 값을 저장하기 위해 더 낮은 정밀도 값을 사용하면 이 저장 요구 사항을 절반 또는 심지어 4배까지 늘릴 수 있습니다.

주요 메모리 문제는 GPU가 밀집된 벡터로 표현되는 데이터에 의존한다는 사실에서 발생합니다. 따라서 단일 명령 스레드(SIMD)를 사용하여 높은 컴퓨팅 밀도를 달성할 수 있습니다. CPU는 고성능 컴퓨팅을 위해 유사한 벡터 단위를 사용합니다.

GPU의 시냅스 너비는 1024비트이므로 32비트 부동 소수점 데이터를 사용하므로 종종 이를 32개 샘플의 병렬 미니 배치로 분할하여 1024비트 데이터의 벡터를 생성합니다. 벡터 병렬성에 대한 이러한 접근 방식은 활성화 횟수를 32배 증가시키고 2GB 이상의 용량을 가진 로컬 스토리지에 대한 필요성을 증가시킵니다.

행렬 대수학을 위해 설계된 GPU 및 기타 기계도 가중치 또는 신경망 활성화로 인한 메모리 부하를 받습니다. GPU는 심층 신경망에서 사용되는 작은 컨볼루션을 효율적으로 수행할 수 없습니다. 따라서 "축소"라는 변환을 사용하여 이러한 컨볼루션을 GPU가 효율적으로 처리할 수 있는 GEMM(행렬-행렬 곱셈)으로 변환합니다.

입력 데이터, 임시 값 및 프로그램 지침을 저장하려면 추가 메모리도 필요합니다. 고급 GPU에서 ResNet-50을 훈련할 때 메모리 사용량을 측정하면 7.5GB 이상의 로컬 DRAM이 필요한 것으로 나타났습니다.

어떤 사람들은 계산 정밀도가 낮아지면 필요한 메모리 양이 줄어들 것이라고 생각할 수도 있지만 사실은 그렇지 않습니다. 가중치 및 활성화에 대해 데이터 값을 절반 정밀도로 전환하면 SIMD 벡터 너비의 절반만 채워 사용 가능한 컴퓨팅 리소스의 절반이 낭비됩니다. 이를 보완하기 위해 GPU에서 전체 정밀도에서 절반 정밀도로 전환할 때 미니 배치의 크기를 두 배로 늘려 사용 가능한 모든 계산을 사용하기에 충분한 데이터 병렬성을 강제해야 합니다. 따라서 GPU에서 더 낮은 정밀도의 가중치와 활성화로 전환하려면 여전히 7.5GB 이상의 자유 액세스 동적 메모리가 필요합니다.

저장할 데이터가 너무 많아서 GPU에 모두 담는 것은 불가능합니다. 각 컨벌루션 신경망 계층은 외부 DRAM의 상태를 저장하고 다음 네트워크 계층을 로드한 후 데이터를 시스템에 로드해야 합니다. 결과적으로, 이미 대역폭이 제한된 외부 메모리 인터페이스는 저울을 지속적으로 다시 로드하고 활성화 기능을 저장 및 검색해야 하는 추가적인 부담을 안고 있습니다. 이로 인해 훈련 ​​시간이 크게 느려지고 전력 소비가 크게 늘어납니다.

이 문제를 해결하는 방법에는 여러 가지가 있습니다. 첫째, 활성화 기능과 같은 작업을 "그 자리에서" 수행할 수 있으므로 입력 데이터를 출력에 직접 다시 쓸 수 있습니다. 이렇게 하면 기존 메모리를 재사용할 수 있습니다. 둘째, 네트워크상의 오퍼레이션 간의 데이터 종속성을 분석하고, 현재 사용하지 않는 오퍼레이션에 동일한 메모리를 할당하는 방식을 통해 메모리 재사용 기회를 얻을 수 있습니다.

두 번째 접근 방식은 메모리 관리 오버헤드가 거의 0으로 줄어들기 때문에 컴파일 타임에 전체 신경망을 분석하여 고정 할당 메모리를 생성할 수 있는 경우 특히 효과적입니다. 이들 방법을 조합하면 신경망의 메모리 사용량을 2~3배 줄일 수 있는 것으로 나타났다.
세 번째 중요한 접근 방식은 최근 Baidu Deep Speech 팀에 의해 발견되었습니다. 그들은 활성화 함수의 메모리 소비를 16배 줄이기 위해 다양한 메모리 절약 기술을 적용하여 100개 레이어로 구성된 네트워크를 훈련할 수 있었습니다. 이전에는 동일한 양의 메모리를 사용하여 9개의 레이어로 구성된 네트워크를 훈련할 수 있었습니다.

메모리와 처리 리소스를 단일 장치에 결합하면 컨볼루션 신경망은 물론 다른 형태의 기계 학습의 성능과 효율성을 향상시킬 수 있는 상당한 잠재력이 있습니다. 시스템의 기능과 성능의 균형을 달성하기 위해 메모리와 컴퓨팅 리소스 간에 절충이 이루어질 수 있습니다.

다른 머신러닝 방법의 신경망과 지식 모델은 수학적 그래프로 생각할 수 있습니다. 이 그래프에는 엄청난 양의 병렬성이 집중되어 있습니다. 그래프의 병렬성을 활용하도록 설계된 병렬 프로세서는 미니 배치에 의존하지 않으며 필요한 로컬 스토리지의 양을 크게 줄일 수 있습니다.

현재 연구 결과에 따르면 이러한 모든 방법이 신경망의 성능을 크게 향상시킬 수 있는 것으로 나타났습니다. 최신 GPU와 CPU의 온보드 메모리는 매우 제한되어 있으며 총 메모리는 몇 메가바이트에 불과합니다. 기계 학습을 위해 특별히 설계된 새로운 프로세서 아키텍처는 메모리와 온칩 컴퓨팅의 균형을 유지하여 오늘날의 CPU 및 GPU에 비해 ​​상당한 성능과 효율성 향상을 제공합니다.

인공 지능, 신경망, 기계 학습 - 현재 인기 있는 이 모든 개념은 실제로 무엇을 의미합니까? 나 자신과 같은 대부분의 미숙한 사람들에게는 항상 환상적인 것처럼 보였지만 사실 그들의 본질은 표면에 있습니다. 나는 오랫동안 인공 신경망에 관해 간단한 언어로 글을 쓰고 싶다는 생각을 갖고 있었습니다. 이 기술이 무엇인지, 어떻게 작동하는지 직접 알아보고 다른 사람들에게 알려주고, 그 역사와 전망을 고려해보세요. 이 기사에서 나는 잡초에 빠지지 않고 첨단 기술 세계에서 이러한 유망한 방향에 대해 간단하고 대중적으로 이야기하려고 노력했습니다.

인공 지능, 신경망, 기계 학습 - 현재 인기 있는 이 모든 개념은 실제로 무엇을 의미합니까? 나 자신과 같은 대부분의 미숙한 사람들에게는 항상 환상적인 것처럼 보였지만 사실 그들의 본질은 표면에 있습니다. 나는 오랫동안 인공 신경망에 관해 간단한 언어로 글을 쓰고 싶다는 생각을 갖고 있었습니다. 이 기술이 무엇인지, 어떻게 작동하는지 직접 알아보고 다른 사람들에게 알려주고, 그 역사와 전망을 고려해보세요. 이 기사에서 나는 잡초에 빠지지 않고 첨단 기술 세계에서 이러한 유망한 방향에 대해 간단하고 대중적으로 이야기하려고 노력했습니다.

약간의 역사

처음으로 뇌 과정을 시뮬레이션하려는 시도에서 인공 신경망(ANN)이라는 개념이 탄생했습니다. 이 분야의 첫 번째 주요 혁신은 1943년 McCulloch-Pitts 신경망 모델의 창안으로 간주될 수 있습니다. 과학자들이 최초로 인공 뉴런 모델을 개발했다. 그들은 또한 논리적 연산을 수행하기 위해 이러한 요소의 네트워크 설계를 제안했습니다. 그러나 가장 중요한 것은 과학자들이 그러한 네트워크가 학습할 수 있다는 것을 입증했다는 것입니다.

다음 중요한 단계는 1949년에 Donald Hebb이 ANN 계산을 위한 최초의 알고리즘을 개발한 것인데, 이는 이후 수십 년 동안 기본이 되었습니다. 1958년 Frank Rosenblatt는 뇌 과정을 모방하는 시스템인 파셉트론을 개발했습니다. 한때 이 기술에는 유사점이 없었으며 여전히 신경망의 기본 기술입니다. 1986년에 미국과 소련의 과학자들은 거의 동시에 서로 독립적으로 다층 퍼셉트론을 훈련시키는 기본적인 방법을 크게 개선했습니다. 2007년에 신경망은 재탄생했습니다. 영국의 컴퓨터 과학자 Geoffrey Hinton은 다층 신경망을 위한 딥 러닝 알고리즘을 최초로 개발했는데, 이는 현재 자율주행차 작동에 사용됩니다.

주요 사항에 대해 간략하게

일반적인 의미에서 신경망은 동물 유기체의 신경 세포 네트워크 원리에 따라 작동하는 수학적 모델입니다. ANN은 프로그래밍 가능 솔루션과 하드웨어 솔루션 모두에서 구현될 수 있습니다. 이해를 쉽게 하기 위해 뉴런은 많은 입력 구멍과 하나의 출력 구멍이 있는 세포로 생각할 수 있습니다. 여러 개의 수신 신호가 출력 신호로 형성되는 방식은 계산 알고리즘에 의해 결정됩니다. 각 뉴런 입력에 유효한 값이 제공되며, 이는 뉴런 간 연결(시놉시스)을 따라 배포됩니다. 시냅스에는 가중치라는 하나의 매개변수가 있는데, 이로 인해 한 뉴런에서 다른 뉴런으로 이동할 때 입력 정보가 ​​변경됩니다. 신경망의 작동 원리를 상상하는 가장 쉬운 방법은 색상을 혼합하는 것입니다. 파란색, 녹색, 빨간색 뉴런은 서로 다른 가중치를 갖습니다. 가중치가 더 큰 뉴런의 정보가 다음 뉴런에서 지배적이 됩니다.

신경망 자체는 그러한 많은 뉴런(프로세서)으로 구성된 시스템입니다. 개별적으로 이러한 프로세서는 매우 간단하지만(개인용 컴퓨터 프로세서보다 훨씬 간단함) 더 큰 시스템에 연결되면 뉴런은 매우 복잡한 작업을 수행할 수 있습니다.

신경망은 적용 분야에 따라 다르게 해석될 수 있습니다. 예를 들어 머신러닝 관점에서 보면 ANN은 패턴 인식 방법입니다. 수학적 관점에서 볼 때 이는 다중 매개변수 문제입니다. 사이버네틱스의 관점에서 - 로봇 공학의 적응 제어 모델입니다. 인공지능의 경우 ANN은 계산 알고리즘을 사용하여 자연 지능을 모델링하는 기본 구성 요소입니다.

기존 컴퓨팅 알고리즘에 비해 신경망의 주요 장점은 학습 능력입니다. 일반적인 의미에서 학습은 뉴런 간의 올바른 결합 계수를 찾는 것뿐만 아니라 데이터를 요약하고 입력 신호와 출력 신호 간의 복잡한 종속성을 식별하는 것입니다. 실제로 신경망 훈련이 성공한다는 것은 시스템이 훈련 세트에 없는 데이터를 기반으로 올바른 결과를 식별할 수 있다는 것을 의미합니다.

현재 상황

그리고 이 기술이 아무리 유망하더라도 ANN은 여전히 ​​인간의 두뇌와 사고 능력과는 거리가 멀습니다. 그러나 신경망은 이미 인간 활동의 여러 영역에서 사용되고 있습니다. 지금까지 그들은 매우 지능적인 결정을 내릴 수는 없지만 이전에 필요했던 사람을 대체할 수 있습니다. ANN의 다양한 적용 분야 중에서 우리는 자가 학습 생산 프로세스 시스템, 무인 차량, 이미지 인식 시스템, 지능형 보안 시스템, 로봇 공학, 품질 모니터링 시스템, 음성 상호 작용 인터페이스, 분석 시스템 등의 생성을 주목할 수 있습니다. 신경망의 이러한 광범위한 사용은 무엇보다도 ANN 훈련을 가속화하기 위한 다양한 방법의 출현에 기인합니다.

오늘날 신경망 시장은 수십억 달러 규모로 거대합니다. 실습에서 알 수 있듯이 전 세계 대부분의 신경망 기술은 서로 거의 다르지 않습니다. 그러나 신경망을 사용하는 것은 매우 비용이 많이 드는 활동이므로 대부분의 경우 대기업에서만 감당할 수 있습니다. 신경망의 개발, 교육 및 테스트에는 대규모 컴퓨팅 성능이 필요하며, IT 시장의 대형 업체가 이를 충분히 갖추고 있다는 것은 분명합니다. 이 분야의 개발을 주도하는 주요 기업 중에는 Google DeepMind 사업부, Microsoft Research 사업부, IBM, Facebook 및 Baidu가 있습니다.

물론 이 모든 것이 좋습니다. 신경망이 발전하고 있고 시장이 성장하고 있지만 지금까지 주요 문제는 해결되지 않았습니다. 인류는 인간 두뇌의 능력에 접근하는 기술조차 만들지 못했습니다. 인간 두뇌와 인공 신경망의 주요 차이점을 살펴보겠습니다.

왜 신경망은 여전히 ​​인간의 두뇌에서 멀리 떨어져 있습니까?

시스템의 원리와 효율성을 근본적으로 변화시키는 가장 중요한 차이점은 인공 신경망과 뉴런의 생물학적 네트워크에서 신호가 다르게 전달된다는 점입니다. 사실 ANN에서는 뉴런이 실제 값인 값, 즉 숫자를 전송합니다. 인간의 뇌에서는 자극이 고정된 진폭으로 전달되며 이러한 자극은 거의 즉각적입니다. 이는 인간의 뉴런 네트워크에 여러 가지 장점을 가져옵니다.

첫째, 뇌의 통신 회선은 ANN의 통신 회선보다 훨씬 더 효율적이고 경제적입니다. 둘째, 펄스 회로는 기술 구현의 용이성을 보장합니다. 복잡한 컴퓨팅 메커니즘 대신 아날로그 회로를 사용하는 것으로 충분합니다. 궁극적으로 펄스 네트워크는 오디오 간섭의 영향을 받지 않습니다. 실수에는 노이즈가 있을 수 있으므로 오류 가능성이 높아집니다.

결론

물론 지난 10년 동안 신경망 개발에 진정한 붐이 일어났습니다. 이는 주로 ANN 교육 프로세스가 훨씬 빠르고 쉬워졌기 때문입니다. 소위 '사전 훈련된' 신경망도 활발히 개발되기 시작했으며, 이는 기술 도입 과정을 크게 가속화할 수 있습니다. 그리고 언젠가 신경망이 인간 두뇌의 능력을 완전히 재현할 수 있을지 말하기에는 너무 이르지만, 향후 10년 안에 ANN이 기존 직업의 4분의 1에서 인간을 대체할 수 있을 가능성이 점점 더 현실화되고 있습니다. .

더 자세히 알고 싶으신 분들을 위해

  • 대신경전쟁: 구글이 실제로 하고 있는 일
  • 인지 컴퓨터가 우리의 미래를 어떻게 바꿀 수 있는가?

오늘날 그래프는 기계 학습 시스템에서 생성된 모델을 설명하는 가장 적합한 방법 중 하나입니다. 이러한 계산 그래프는 정점 간의 연결을 설명하는 시냅스 가장자리로 연결된 뉴런 정점으로 구성됩니다.

스칼라 중앙 또는 벡터 그래픽 프로세서와 달리 기계 학습을 위해 설계된 새로운 유형의 프로세서인 IPU는 이러한 그래프를 구성할 수 있습니다. 그래프를 조작하도록 설계된 컴퓨터는 기계 학습을 통해 생성된 그래프 모델을 계산하는 데 이상적인 기계입니다.

기계 지능의 프로세스를 설명하는 가장 쉬운 방법 중 하나는 시각화하는 것입니다. 그래프코어 개발팀은 IPU에 표시되는 이미지 모음을 만들었습니다. 인공지능의 작업을 시각화하는 Poplar 소프트웨어를 기반으로 합니다. 또한, 이 회사 연구진은 딥 네트워크에 그렇게 많은 메모리가 필요한 이유와, 문제를 해결하기 위한 솔루션이 무엇인지도 알아냈습니다.

Poplar에는 표준 기계 학습 작업을 고도로 최적화된 IPU 애플리케이션 코드로 변환하기 위해 처음부터 구축된 그래픽 컴파일러가 포함되어 있습니다. POPNN을 수집하는 것과 동일한 원리를 사용하여 이러한 그래프를 함께 수집할 수 있습니다. 라이브러리에는 일반화된 기본 요소에 대한 다양한 정점 유형 세트가 포함되어 있습니다.

그래프는 모든 소프트웨어의 기반이 되는 패러다임입니다. 포플러에서는 그래프를 사용하여 정점이 작업을 수행하고 가장자리가 정점 간의 관계를 설명하는 계산 프로세스를 정의할 수 있습니다. 예를 들어, 두 개의 숫자를 함께 더하려는 경우 두 개의 입력(더하고 싶은 숫자), 일부 계산(두 개의 숫자를 더하는 함수) 및 출력(결과)이 있는 정점을 정의할 수 있습니다.

일반적으로 꼭짓점을 사용한 작업은 위에서 설명한 예보다 훨씬 더 복잡합니다. 이는 코드렛(코드명)이라는 작은 프로그램으로 정의되는 경우가 많습니다. 그래픽 추상화는 계산 구조에 대한 가정을 하지 않고 계산을 IPU가 작동하는 데 사용할 수 있는 구성 요소로 나누기 때문에 매력적입니다.

Poplar는 이 간단한 추상화를 사용하여 이미지로 표시되는 매우 큰 그래프를 구축합니다. 그래프의 소프트웨어 생성은 IPU 리소스의 가장 효율적인 사용을 보장하는 데 필요한 특정 계산에 맞게 그래프를 조정할 수 있음을 의미합니다.

컴파일러는 기계 학습 시스템에 사용되는 표준 작업을 IPU용 고도로 최적화된 애플리케이션 코드로 변환합니다. 그래프 컴파일러는 하나 이상의 IPU 장치에 배포되는 계산 그래프의 중간 이미지를 생성합니다. 컴파일러는 이 계산 그래프를 표시할 수 있으므로 신경망 프레임워크 수준에서 작성된 애플리케이션은 IPU에서 실행 중인 계산 그래프의 이미지를 표시합니다.


정방향 및 역방향의 전체 AlexNet 훈련 주기 그래프

Poplar 그래픽 컴파일러는 AlexNet 설명을 1,870만 개의 정점과 1억 1,580만 개의 모서리로 구성된 계산 그래프로 변환했습니다. 명확하게 눈에 띄는 클러스터링은 네트워크의 각 계층에 있는 프로세스 간 강력한 통신의 결과이며 계층 간 통신이 더 쉬워집니다.

또 다른 예는 기계 학습에서 일종의 "Hello, world"인 간단한 컴퓨터 비전 데이터 세트인 MNIST에서 훈련된 단순하고 완전히 연결된 네트워크입니다. 이 데이터 세트를 탐색하는 간단한 네트워크는 Poplar 애플리케이션으로 구동되는 그래프를 이해하는 데 도움이 됩니다. 그래프 라이브러리를 TensorFlow와 같은 프레임워크와 통합함으로써 이 회사는 기계 학습 애플리케이션에서 IPU를 사용하는 가장 간단한 방법 중 하나를 제공합니다.

컴파일러를 사용하여 그래프를 구성한 후에는 실행해야 합니다. 이는 그래프 엔진을 사용하여 가능합니다. ResNet-50의 예는 그 작동을 보여줍니다.


ResNet-50 그래프

ResNet-50 아키텍처를 사용하면 반복되는 파티션에서 심층 네트워크를 생성할 수 있습니다. 프로세서는 이러한 섹션을 한 번만 정의하고 다시 호출하면 됩니다. 예를 들어, conv4 수준 클러스터는 6번 실행되지만 그래프에는 한 번만 매핑됩니다. 또한 이미지는 컨볼루션 레이어의 다양한 모양을 보여줍니다. 각 레이어에는 자연스러운 계산 형태에 따라 작성된 그래프가 있기 때문입니다.

엔진은 컴파일러에서 생성된 그래프를 사용하여 기계 학습 모델의 실행을 생성하고 관리합니다. 배포되면 그래프 엔진은 애플리케이션에서 사용되는 IPU 또는 장치를 모니터링하고 응답합니다.

ResNet-50 이미지는 전체 모델을 보여줍니다. 이 수준에서는 개별 정점 간의 연결을 식별하기 어렵기 때문에 확대된 이미지를 보는 것이 좋습니다. 다음은 신경망 계층 내 섹션의 몇 가지 예입니다.

딥 네트워크에는 왜 그렇게 많은 메모리가 필요한가요?

대규모 메모리 공간은 심층 신경망의 가장 큰 과제 중 하나입니다. 연구자들은 현대 시스템이 심층 신경망에 엄청난 양의 가중치와 활성화 값을 저장하는 데 사용해야 하는 DRAM 장치의 제한된 대역폭에 맞서 싸우려고 노력하고 있습니다.

아키텍처는 고밀도 메모리를 위한 순차 처리 및 DRAM 최적화를 위해 설계된 프로세서 칩을 사용하여 설계되었습니다. 이 두 장치 사이의 인터페이스는 대역폭 제한을 초래하고 전력 소비에 상당한 오버헤드를 추가하는 병목 현상을 발생시킵니다.

우리는 아직 인간의 뇌와 그것이 어떻게 작동하는지 완전히 이해하지 못하지만 일반적으로 별도의 대규모 메모리 저장소가 없는 것으로 이해됩니다. 인간 뇌의 장기기억과 단기기억의 기능은 뉴런+시냅스의 구조에 내장되어 있다고 믿어지고 있다. 300개가 조금 넘는 뉴런으로 구성된 신경 뇌 구조를 가진 벌레와 같은 단순한 유기체도 어느 정도 기억 기능을 가지고 있습니다.

기존 프로세서에 메모리를 구축하는 것은 메모리 병목 현상 문제를 피하고 훨씬 적은 전력을 소비하면서 엄청난 대역폭을 확보하는 한 가지 방법입니다. 그러나 온칩 메모리는 가격이 비싸며 현재 심층 신경망을 훈련하고 배포하는 데 사용되는 CPU 및 GPU에 부착되는 대용량 메모리용으로 설계되지 않았습니다.

따라서 오늘날 CPU 및 GPU 기반 딥 러닝 시스템에서 메모리가 어떻게 사용되는지 살펴보고 자문해 보는 것이 유용합니다. 인간의 두뇌는 메모리 저장 장치 없이도 잘 작동하는데 왜 그렇게 큰 메모리 저장 장치가 필요한가?

입력이 네트워크를 통해 전파될 때 신경망에는 입력 데이터, 가중치 및 활성화 함수를 저장하기 위해 메모리가 필요합니다. 학습 시 입력에 대한 활성화는 출력 기울기의 오류를 계산하는 데 사용될 수 있을 때까지 유지되어야 합니다.

예를 들어, 50개 레이어로 구성된 ResNet 네트워크에는 약 2,600만 개의 가중치 매개변수가 있고 1,600만 개의 정방향 활성화를 계산합니다. 32비트 부동 소수점을 사용하여 각 가중치와 활성화를 저장하는 경우 약 168MB의 공간이 필요합니다. 이러한 가중치와 활성화 값을 저장하기 위해 더 낮은 정밀도 값을 사용하면 이 저장 요구 사항을 절반 또는 심지어 4배까지 늘릴 수 있습니다.

주요 메모리 문제는 GPU가 밀집된 벡터로 표현되는 데이터에 의존한다는 사실에서 발생합니다. 따라서 단일 명령 스레드(SIMD)를 사용하여 높은 컴퓨팅 밀도를 달성할 수 있습니다. CPU는 고성능 컴퓨팅을 위해 유사한 벡터 단위를 사용합니다.

GPU의 시냅스 너비는 1024비트이므로 32비트 부동 소수점 데이터를 사용하므로 종종 이를 32개 샘플의 병렬 미니 배치로 분할하여 1024비트 데이터의 벡터를 생성합니다. 벡터 병렬성에 대한 이러한 접근 방식은 활성화 횟수를 32배 증가시키고 2GB 이상의 용량을 가진 로컬 스토리지에 대한 필요성을 증가시킵니다.

행렬 대수학을 위해 설계된 GPU 및 기타 기계도 가중치 또는 신경망 활성화로 인한 메모리 부하를 받습니다. GPU는 심층 신경망에서 사용되는 작은 컨볼루션을 효율적으로 수행할 수 없습니다. 따라서 "축소"라는 변환을 사용하여 이러한 컨볼루션을 GPU가 효율적으로 처리할 수 있는 GEMM(행렬-행렬 곱셈)으로 변환합니다.

입력 데이터, 임시 값 및 프로그램 지침을 저장하려면 추가 메모리도 필요합니다. 고급 GPU에서 ResNet-50을 훈련할 때 메모리 사용량을 측정하면 7.5GB 이상의 로컬 DRAM이 필요한 것으로 나타났습니다.

어떤 사람들은 계산 정밀도가 낮아지면 필요한 메모리 양이 줄어들 것이라고 생각할 수도 있지만 사실은 그렇지 않습니다. 가중치 및 활성화에 대해 데이터 값을 절반 정밀도로 전환하면 SIMD 벡터 너비의 절반만 채워 사용 가능한 컴퓨팅 리소스의 절반이 낭비됩니다. 이를 보완하기 위해 GPU에서 전체 정밀도에서 절반 정밀도로 전환할 때 미니 배치의 크기를 두 배로 늘려 사용 가능한 모든 계산을 사용하기에 충분한 데이터 병렬성을 강제해야 합니다. 따라서 GPU에서 더 낮은 정밀도의 가중치와 활성화로 전환하려면 여전히 7.5GB 이상의 자유 액세스 동적 메모리가 필요합니다.

저장할 데이터가 너무 많아서 GPU에 모두 담는 것은 불가능합니다. 각 컨벌루션 신경망 계층은 외부 DRAM의 상태를 저장하고 다음 네트워크 계층을 로드한 후 데이터를 시스템에 로드해야 합니다. 결과적으로, 이미 대역폭이 제한된 외부 메모리 인터페이스는 저울을 지속적으로 다시 로드하고 활성화 기능을 저장 및 검색해야 하는 추가적인 부담을 안고 있습니다. 이로 인해 훈련 ​​시간이 크게 느려지고 전력 소비가 크게 늘어납니다.

이 문제를 해결하는 방법에는 여러 가지가 있습니다. 첫째, 활성화 기능과 같은 작업을 "그 자리에서" 수행할 수 있으므로 입력 데이터를 출력에 직접 다시 쓸 수 있습니다. 이렇게 하면 기존 메모리를 재사용할 수 있습니다. 둘째, 네트워크상의 오퍼레이션 간의 데이터 종속성을 분석하고, 현재 사용하지 않는 오퍼레이션에 동일한 메모리를 할당하는 방식을 통해 메모리 재사용 기회를 얻을 수 있습니다.

두 번째 접근 방식은 메모리 관리 오버헤드가 거의 0으로 줄어들기 때문에 컴파일 타임에 전체 신경망을 분석하여 고정 할당 메모리를 생성할 수 있는 경우 특히 효과적입니다. 이들 방법을 조합하면 신경망의 메모리 사용량을 2~3배 줄일 수 있는 것으로 나타났다.
세 번째 중요한 접근 방식은 최근 Baidu Deep Speech 팀에 의해 발견되었습니다. 그들은 활성화 함수의 메모리 소비를 16배 줄이기 위해 다양한 메모리 절약 기술을 적용하여 100개 레이어로 구성된 네트워크를 훈련할 수 있었습니다. 이전에는 동일한 양의 메모리를 사용하여 9개의 레이어로 구성된 네트워크를 훈련할 수 있었습니다.

메모리와 처리 리소스를 단일 장치에 결합하면 컨볼루션 신경망은 물론 다른 형태의 기계 학습의 성능과 효율성을 향상시킬 수 있는 상당한 잠재력이 있습니다. 시스템의 기능과 성능의 균형을 달성하기 위해 메모리와 컴퓨팅 리소스 간에 절충이 이루어질 수 있습니다.

다른 머신러닝 방법의 신경망과 지식 모델은 수학적 그래프로 생각할 수 있습니다. 이 그래프에는 엄청난 양의 병렬성이 집중되어 있습니다. 그래프의 병렬성을 활용하도록 설계된 병렬 프로세서는 미니 배치에 의존하지 않으며 필요한 로컬 스토리지의 양을 크게 줄일 수 있습니다.

현재 연구 결과에 따르면 이러한 모든 방법이 신경망의 성능을 크게 향상시킬 수 있는 것으로 나타났습니다. 최신 GPU와 CPU의 온보드 메모리는 매우 제한되어 있으며 총 메모리는 몇 메가바이트에 불과합니다. 기계 학습을 위해 특별히 설계된 새로운 프로세서 아키텍처는 메모리와 온칩 컴퓨팅의 균형을 유지하여 오늘날의 CPU 및 GPU에 비해 ​​상당한 성능과 효율성 향상을 제공합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: