Chapter Content
아, 그러니까... 음... 챕터 2, 시작해볼까요? 제목은 뭐였더라... 아, 맞다, "벽에 부딪히다".
그러니까 우리가 지금까지 인간이 어떻게 발전해왔는지 봤잖아요? 단순히 똑똑해져서, 더 열심히 일해서, 아니면 소위 천재 덕분에 그런 게 아니라는 거죠. 점점 더 높은 수준의 추상화를 디자인하는 과정을 통해서 발전해왔다는 거예요. 이전 세대가 풀었던 문제를 다음 세대가 더 빨리 풀 수 있는 건, 시작점이 이미 앞당겨져 있기 때문이죠.
근데, 있죠... 디자인이라는 게 결국 결정론에 의존하잖아요? 근데 결정론으로는 진짜 어려운 문제, 우리가 지금 해결해야 하는 그런 종류의 문제를 풀 수가 없다는 거죠. 우리가 만들어야 하는 것들이 고려해야 할 요소나 상호작용의 수가 너무 많아서, 규칙 기반 패러다임으로는 감당이 안 되는 거예요.
그러니까, 심각한 질문이 남는 거죠. 만약 우리가 더 이상 해결책을 디자인할 수 없다면, 인류는 어떻게 기술 발전을 계속할 수 있을까? 인과관계도 없고, 구체적인 단계도 없고, 우리가 만드는 시스템에 대한 내적 지식도 없다면, 어떻게 우리가 만들어야 하는 것에 대해 추론할 수 있을까? 우리가 점점 더 많은 세부 사항을 다룰 수 있는 인터페이스를 의도적으로 만들 수 없다면, 다음 세대는 어떻게 새로운 시작점을 얻을 수 있을까?
추상화를 통한 발전이라는 측면에서, 진짜 벽에 부딪힌 거예요. 이전 챕터에서 주장했듯이, 추상화를 통한 발전은 보편적인 진리거든요. 모든 시스템은 어떤 종류의 발전이라도 이루려면 추상화가 필요해요. 추상화의 한계를 계속 넓히는 유일한 방법은, 디자인에 의존하지 않는 새로운 방법을 찾는 것뿐이죠. 그런 대안적인 건설 방식은 자연 시스템 안에 존재해야 해요. 왜냐하면 자연은 그렇게 하지 않고는 발전할 수 없었을 테니까요.
자연은 무엇보다도 복잡성으로 정의되잖아요. 그건 우리에게 앞으로는 복잡성이 필수적이라는 걸 알려주는 거죠. 더 정확히 말하면, 복잡성이 바로 우리가 만들어야 할 대상이라는 거예요. 단순히 복잡하게 만드는 것으로는 발전할 수 없어요. 그냥 부품을 더 많이 추가하는 문제가 아니라, 진짜 복잡성을 달성하는 문제인 거죠.
디자인의 한계에 부딪혔다는 건, 현재 패러다임 아래에서 우리의 창의적 한계에 도달했다는 의미예요. 단순한 추론을 통해 만들어진 단순한 기계로는 더 이상 나아갈 수 없다는 거죠. 많은 사람들에게 직관에 어긋나는 것처럼 보이겠지만, 우리가 필요로 하는 새로움은 가장 오래된 과정 속에 있어요. 바로 자연이 사용하는 무심한 과정, 그것이 복잡한 영역으로 가는 열쇠를 쥐고 있다는 거죠.
근데, 있죠... 이 접근 방식을 받아들이는 데 드는 비용은 많은 사람들에게 상상조차 할 수 없을 정도예요. 환원주의적 과거의 깨달은 사고방식을 포기하는 것이 유일한 해결책처럼 보이잖아요. 하지만, 부품들을 묶어서 공통 기능을 만들어내는 건, 바로 자연의 무심하고 비이성적인 메커니즘이에요. 그게 바로 어려운 문제에 대한 답을 계산하는 추상화인 거죠. 이걸 우리가 배워서 만들어야 한다는 거예요.
근데, 이 자연적인 건설 방식이 그냥 무작정 이것저것 마구잡이로 섞어서 운에 맡기는 그런 게 아니라는 거죠. 우리의 노력은 문제 해결의 가능성, 그리고 문제의 해결책을 담고 있는 가능성의 공간 안에서 작동해야 해요. 복잡성의 필요성이 제기하는 난제는 인간이 문제를 해결하기 위해 자신의 마음을 사용하는 방식과 정면으로 배치되는 것처럼 보인다는 거죠.
아, 잠깐만요. 근데 인간이 만든 모든 것이 환원주의적이고 결정론적인 틀에 들어맞는 건 아니에요. 인간은 의도된 디자인만으로는 결과물이 나오지 않는 것들도 만들어냈거든요. 사회, 시장, 그리고 특정 기술 같은 것들이요. 이런 것들은 디자인에 의해 의도적으로 배치된 것이 아닌, 다른 무언가 덕분에 작동하거든요. 이건 인간이 자연처럼 뭔가를 창조할 수 있는 능력이 있다는 걸 의미하고, 디자인 없이도 추상화를 통해 어떻게 발전을 계속할 수 있는지에 대한 힌트를 제공한다는 거죠.
그러니까, 복잡성을 구축하는 힌트라고나 할까요?
인간은 자연의 정교함에 비견될 만한 것들을 몇 가지 만들었어요. 물론, 여기서 "만들었다"라는 단어는 액면 그대로 받아들여서는 안 돼요. 우리가 이야기하는 건 디자인된 시스템이 아니라, 의도치 않게 그렇게 된 시스템에 대한 거니까요. 원래 설정된 것 이상의 무언가를 사용해서, 공학적으로 설계된 게 아니라 우연히 도달하게 된 대상들이죠. 이런 대상들은 진정한 복잡성에 가까워요. 단순히 많은 부품과 상호작용이 있어서가 아니라, 중요한 결과물의 상당 부분이 우리가 만들지 않은 메커니즘에 의해 생성되기 때문이죠.
우리가 진정한 복잡성, 자연에서 볼 수 있는 것에 가장 근접하게 만든 것은 도시, 금융 시스템, 전력망, 인터넷, 그리고 인공지능 시스템 같은 것들이에요. 이런 대상들을 진정한 복잡성의 영역으로 끌어들이는 것은, 그 결과물이 의도적인 엔지니어링만으로 만들어지지 않는다는 점이죠. 이런 대상들은 모두 우리가 '창발'이라고 부르는 것의 초기 징후를 보여주는데, 그건 그것들을 구성하는 요소에는 존재하지 않는 구조와 행동의 출현을 의미해요.
전력망을 예로 들어볼게요. 전압 변동, 전력 진동, 주파수 편차가 발생하는데, 이건 시스템에 엔지니어링된 것이 아니거든요. 이런 행동들은 기계의 결함도 아니고, 복잡성의 부산물도 아니에요. 전력망은 상당 부분 창발적 속성 덕분에 작동하는 거죠. 전력망의 안정성은 자기 조직화 특성 덕분에 가능한 거예요. 전력망은 장비 고장, 자연 재해, 사이버 공격에 대한 내장된 복원력을 보여줬는데, 이는 혼란에 동적으로 적응하고 전력 흐름을 재라우팅함으로써 가능했던 거죠. 네트워크는 자연스럽게 영향을 받은 영역을 격리하고, 중복 시스템을 통해 기능을 복원할 수 있어요. 전력 전송을 위한 여러 중복 경로를 만드는 것은 의도적인 노력이지만, 영향을 받은 영역의 자가 치유 및 자연적 격리는 명시적인 인간 통제가 아니라, 이러한 엔지니어링된 구성 요소의 상호 작용에서 비롯되는 거죠.
도시는 계획과 의도적인 의사 결정만으로 존재하는 게 아니에요. 어떤 큰 도시든 그 형태와 기능은 자기 조직화 행동 덕분이죠. 접근성 변화, 고객 인구 통계, 역동적인 경쟁과 같은 수많은 변수를 기반으로 기업이 어디에 위치하는지 생각해보세요. 상업 지구의 형성은 예측 불가능한 방식으로 나타날 수 있죠. 거리 패턴과 건물 밀도는 중앙 계획만이 아닌, 지리적 제약 조건과 개인적인 결정이 누적된 결과로 나타나는 거예요. 도시는 경제 활동의 중심지이고, 상품, 서비스, 노동력, 부동산이 상호 의존적으로 작동하여 도시의 모습과 느낌을 만들어내는 거죠. 시민들이 유기적으로 상호 작용하면서, 공동체 결속의 거점이 생겨나고, 계획되지 않은 교통 패턴과 예상치 못한 이동성 요구에서 대중교통 시스템이 탄생하는 걸 볼 수 있죠.
우리의 금융 시스템은 주체, 상품, 시장 참여자 간의 혼합의 결과예요. 투자자, 거래자, 기관의 집단적 행동은 예측 불가능한 시장 가격, 거래량, 변동성을 가져오죠. 수요와 공급 패턴, 투자 심리, 정보 전파가 모두 혼합되어 우리가 시장이라고 부르는 것을 만들어내는 거예요. 가격 결정은 결국 그렇게 결정된 것이 아니라, 다양한 의견, 신념, 거래 전략의 집합에서 비롯되는 거죠. 끊임없이 진화하는 규제 프레임워크는 필요와 우선순위의 혼합에서 비롯되어 시스템에 내장된 안정성과 건전성을 가져다줘요. 우리의 금융 시스템은 (보통) 충격, 혼란, 스트레스에 견딜 수 있는데, 이건 시스템에 엔지니어링된 복원력이 아니죠.
인터넷은 다양한 의견, 신념, 지식의 전자적 집계와 전파 덕분에 의견 형성 및 집단적 의사 결정을 가능하게 해요. 상호 연결된 장치의 분산형 네트워크로서, 인터넷은 네트워크 확장성, 복원력, 적응성과 같은 복잡성의 특징적인 징후를 보여주죠. 온라인 커뮤니티와 소셜 네트워크는 사용자들이 토론, 협업, 집단적 행동에 참여하면서 자발적으로 나타나요. 콘텐츠 제작 및 배포의 민주화는 입소문 콘텐츠, 밈, 트렌드, 심지어 문화 운동의 출현으로 이어졌죠.
물론, 그런 창발적 행동은 우리에게 불리하게 작용할 수도 있어요. 전력망은 미세한 전압 변동이나 주파수 편차를 증폭시켜서 대규모 정전으로 이어지게 할 수도 있거든요. 시장을 불안정하게 만들 수 있는 거품, 붕괴, 피드백 증폭도 있고요. 이건 복잡성의 대가인 거죠. 복잡한 것들이 작동하게 만드는 요인이, 우리의 정제된 사용 사례에 불리한 결과물을 만들어낼 수도 있다는 거예요. 중요한 건, 이런 행동들은 의도적으로 시스템에 엔지니어링된 것이 아니며, 이런 시스템들은 창발적 속성이 없이는 지금처럼 작동하지 않는다는 거죠.
아마도 인간이 만든 가장 복잡한 것은 현재의 AI 시스템, 더 구체적으로는 AI를 구동하는 모델일 거예요. 이것들은 기계 학습 기술, 특히 딥러닝을 기반으로 하죠. 딥러닝은 원시 데이터를 자연어 대화나 얼굴 인식과 같은 지능적인 결과물로 변환하거든요. 근데 이 변환이 어떻게 일어나는지는 알려져 있지 않아요. 적어도 과학자와 엔지니어가 설명하는 방식으로는요. AI 시스템에 제공되는 입력이 어떻게 지능을 가능하게 하는 출력으로 변환되는지 이해하는 연구자나 엔지니어는 없어요. 왜냐하면 AI는 기존 소프트웨어처럼 프로그래밍되지 않기 때문이죠. AI 시스템의 골격은 규칙 기반이지만, 지능적인 결과물을 만들어내는 내부 세부 사항은 전력망, 도시, 금융 시장이 가장 중요한 결과물을 만들어내는 방식과 훨씬 더 유사하거든요.
딥러닝이 어떻게 작동하는지 이해하려면, 먼저 "작동 방식"이라는 말의 의미를 재정의해야 해요. 우리의 설명에서 "어떻게"는 정보가 특정 방식으로 변환되는 것을 보여주는 결정론적인 단계 집합일 수 없다는 거죠. 대신, 엔지니어는 필요한 것에 수렴하는 프로세스를 설정하는 외부 골격만 프로그래밍할 수 있어요.
AI가 무엇을 하고 있는지 설명하는 가장 간단하지만 느슨한 비유는 데이터에 선을 맞추는 개념에 기반을 두고 있어요. 이건 과학에서 데이터보다 더 심오한 무언가를 찾기 위해 흔히 사용되는 접근 방식이거든요. 데이터에 선을 맞출 때, 우리는 관심 시스템에 대한 예측 능력을 제공할 수 있는 일반적인 추세를 찾으려고 하는 거예요. 예를 들어, 온도와 아이스크림 판매량을 그래프로 그리는 거죠. 그 값을 그래프로 그리고 추세를 찾으면, 온도가 높을수록 아이스크림 판매량이 많다는 것을 보여주는 선이 나올 가능성이 높아요.
이 선을 가지고 우리는 이제 아이스크림 판매량을 예측할 수 있는 무언가를 갖게 된 거죠. 내일의 온도를 보고 그 온도에서 판매할 가능성이 높은 아이스크림 양을 읽어낼 수 있어요. 사실, 그래프가 전혀 필요 없죠. 데이터에 선을 맞췄고, 선은 수학적 표현으로 나타낼 수 있으니까, 우리는 함수를 갖게 된 거예요. 함수는 입력을 출력에 매핑하여 주어진 입력에서 값을 생성할 수 있게 해주는 것이죠. 아이스크림 예제에서, 특정 날짜의 온도를 입력하면 판매할 것으로 예상되는 아이스크림 양에 대한 값이 튀어나오는 거예요.
함수를 얻기 위해 데이터에 선을 맞추는 이러한 개념은, 우리가 세상에 대해 배울 때 우리의 마음이 하는 일과 크게 다르지 않다는 거죠. 물론, 마음은 값의 저차원 플롯을 통과하는 단순한 선을 사용하는 것이 아니지만, 상위 수준의 개념은 똑같아요. 우리는 감각을 통해 세상을 만나는데, 이건 데이터를 수집하는 것과 비슷하죠. 이 데이터는 사물이 어떻게 작동하는지, 무엇을 의미하는지에 대한 정신적 모델을 만드는 데 사용하는 원시 입력이 되는 거예요. 아이들이 처음 말을 배울 때, 문법, 어휘, 문장 구조와 관련된 내부 잠재 모델을 개발하는 것이죠. 그들이 배우는 "함수"는 입력 (우리가 듣는 소리)을 출력 (단어의 의미)으로 변환하는 거예요.
인생 전체가 함수를 배우는 것과 같아요. 심지어 그 함수가 순전히 추상적인 의미일지라도요. 다른 사람들과 상호 작용할 때, 우리는 사회적 역학을 파악하고 행동, 규범, 사회적 신호에 대한 기대치를 사용하여 복잡한 상황을 헤쳐나가죠. 복잡한 상황에 대한 우리의 정신적 모델은 우리가 말하고 행동하는 것에 대한 다른 사람들의 반응을 예측할 수 있게 해주는 거예요. 자동차를 운전할 때, 우리는 도로 레이아웃, 교통 패턴, 다른 운전자의 행동에 대한 모델을 구현하고 있는 거죠. 잠재적인 위험을 예상하고 속도, 방향, 타이밍에 대한 결정을 내리는 거예요. 입력에서 출력으로 매핑하는 일련의 내부 함수 없이는 이 모든 것이 불가능하겠죠. 뭔가를 배운다는 건 감각 데이터에 "선을 맞춰서" 주변 세계의 모델을 만드는 것과 같아요.
선과 같은 모델을 구축하려면 매개변수를 찾아야 하는데, 왜냐하면 모델에 형태를 부여하는 것이 바로 매개변수이기 때문이죠. 매개변수는 데이터를 기준으로 선을 조정하기 위해 돌리는 손잡이와 같아요. 일반적인 방법은 선형 회귀를 사용하여 관찰된 데이터에 선형 방정식을 맞추는 거죠. 플롯에서 데이터 점수를 꿰뚫는 선이 보이면, 선형 회귀가 사용되고 있을 가능성이 높아요. 이 경우, 하나의 손잡이를 돌리면 선의 기울기가 조정되어 선이 더 가파르거나 완만해지고, 다른 손잡이를 돌리면 선이 수직으로 재배치되죠. 올바른 기울기와 절편을 얻는다는 것은 데이터에 대한 최상의 적합성을 얻는다는 것을 의미해요. 다시 말해서, 손잡이의 최적 위치를 찾는 것은 데이터를 사용하여 입력 (독립 변수)과 출력 (종속 변수) 간의 관계를 모델링하려는 시도인 거죠.
선형 회귀는 본질적으로 "플러그 앤 플레이" 방식인데, 실험에서 수집된 데이터를 폐쇄형 (깔끔하고 이해하기 쉬운) 표현에 연결하여 선을 맞추는 데 필요한 기울기와 절편을 생성하는 방식이죠. 즉, 매개변수는 찾기보다는 직접 계산되는 거예요.
선형 회귀는 그 단어가 의미하는 어떤 적절한 의미에서도 학습이 아니에요. 선형 회귀는 미리 정의된 수학적 구조에 따라 매개변수 값을 계산하거든요. 함수가 입력을 출력으로 변환하는 방식을 정의하는 손잡이를 실제로 배우려면, 함수가 어떻게 생겼는지에 대한 과감한 가정을 하지 않아야 하는 거죠. 대신, 모든 진정한 학습에 필요한 것, 즉 시행착오를 시작해야 해요. 여기에는 먼저 매개변수 값을 무작위로 추측하고, (일부 기준에 따라) 우리가 얼마나 틀렸는지 확인하고, 값을 조정하고 다시 시도하는 것이 포함되겠죠. 우리는 좋은 적합성에 대한 몇 가지 정의에 접근할 때까지 계속 추측하고, 평가하고, 조정해야 할 거예요.
이게 바로 오늘날의 AI 시스템을 뒷받침하는 컴퓨팅 방식인 기계 학습이 하려는 일이거든요. 데이터를 잘 정의된 구조로 억지로 밀어넣고 매개변수를 직접 계산하는 대신, 많은 양의 데이터와 반복을 사용하여 수렴에 도달할 때까지 계속 추측을 하는 거죠. 딥러닝에서는 모델이 데이터에 맞춰지는데, 직선 대신 3차원 마음으로는 시각화할 수 없는 고차원적인 무언가가 들어가는 것뿐이에요. AI가 학습한 함수는 입력에서 출력으로의 단순한 결정론적 매핑이 아니라, 수십억 개의 매개변수를 포함하는 괴물 같고, 복잡하고, 믿을 수 없을 정도로 복잡한 표현인 거죠.
AI에는 멋진 해석 가능한 폐쇄형 표현이 없어요. AI의 층을 벗겨내고 입력에서 출력으로 정보를 변환하는 일련의 인과적 단계를 드러낼 수 없다는 거죠. 이것은 플러그 앤 플레이 수학의 영역이 아니라, 사람들이 배우는 방식과 유사하게 학습하는 데 사용되는 반복적인 최적화 및 소프트 의사 결정의 세계라는 거예요.
따라서 딥러닝은 소프트웨어를 구축하는 방법에 대한 매우 다른 철학을 나타내는 거죠. AI에는 명시적 또는 가시적인 기능이 없기 때문에, 그 출력을 생성하는 내부 구조를 알 수 없어요. 우리가 필요로 하는 출력을 생성하도록 AI 기계의 핵심을 설계할 수 없다는 거죠. 우리가 할 수 있는 전부라고는 우리가 (보통) 기대하는 답을 생성할 때까지 수십억 개의 손잡이를 반복적으로 돌리려고 시도하는 높은 수준의 프로세스를 설정하는 것뿐이죠.
오늘날의 AI가 만들어지는 방식은 개별적인 인공 뉴런을 프로그래밍하는 것인데, 이것들은 인간 두뇌의 생물학적 뉴런의 행동을 모방하기 위해 만들어진 코드 단위로 연결된 것이죠. 생물학적 뉴런은 우리의 신경계가 전기적 및 화학적 신호를 통해 정보를 처리하고 전달하는 방법이거든요. 뇌의 각 뉴런은 수상돌기라고 불리는 구조를 통해 다른 뉴런으로부터 신호를 받아요. 뉴런은 이러한 들어오는 신호를 세포체 (소마)에 통합하고, 결합된 입력이 임계값을 초과하면 활동 전위 (전기적 전위의 짧은 변화)를 생성하죠. 활동 전위는 뉴런의 긴 돌출부로 세포에서 전기 충격을 멀리 전달하는 축삭을 따라 전파되죠. 축삭은 신경계의 주요 전송선이며, 다른 뉴런, 근육 등으로 신호를 전달하는 역할을 하거든요.
전문 용어를 줄여서 말하면, 인간의 뇌는 서로 연결된 기능 단위의 거대한 네트워크를 사용하여 정보를 처리하고, 각 기능 단위는 인접한 단위와의 상호 작용에 따라 전기 신호를 전송하는 것처럼 보인다는 거죠. 이것이 딥러닝에 영감을 주는 아키텍처인데, 여기서 기능 단위는 인공 뉴런이고, 전기 신호의 전송은 숫자 형태의 뉴런 간에 전송되는 정보이며, 이 값들은 연결의 활성화 수준과 강도를 나타내죠.
딥러닝의 매개변수는 선형 회귀 예제와 같은 기울기나 절편 같은 것이 아니에요. 딥러닝에 사용되는 매개변수 (가중치 및 편향이라고 함)는 수십억 개에 달하며, 뉴런 간의 연결 강도 및 각 뉴런 내에서 허용되는 유연성 수준과 관련이 있죠. 선형 회귀의 매개변수는 깔끔한 수학적 형태 덕분에 특정한 의미를 갖지만, 딥러닝 모델의 매개변수는 네트워크 전체를 고려할 때만 의미가 있어요.
명시적인 수학적 표현이 없는데 어떻게 매개변수를 설정할 수 있을까요? 값이 수십억 개에 달한다면 어떻게 찾을 수 있을까요? 딥러닝은 시스템을 통해 많은 양의 데이터를 전달하고, 전체 시스템이 필요한 출력을 생성할 때까지 (처음에 무작위 값으로 설정된) 매개변수 값을 조정하는 방식으로 그렇게 하죠. 이것은 모델이 예측하는 출력과 실제로 필요한 출력 간의 차이를 최소화하려고 시도하는 최적화 알고리즘을 사용하여 수행되거든요. 얼굴 인식에서 실제로 필요한 출력은 얼굴의 식별 (예: 밥)이고, 예측된 출력은 언제든지 가장 잘 추측한 식별 (예: 빌? 수잔?)인 거죠. 즉, 딥러닝이 문제에 접근하는 방식은 의도적인 계산을 통해서가 아니라, 예측된 레이블과 실제 레이블 간의 간격을 좁혀서 대부분 일치할 때까지 하는 방식으로 접근하는 거예요. 딥러닝의 모든 형태가 레이블을 사용하는 것은 아니지만, 기본적인 접근 방식은 동일해요. 모델이 처음에 생각하는 것과 실제 간의 간격을 좁히는 것이죠.
이것은 추론된 계산이 아니라 추측과 반복의 게임이에요. 기계를 구축하는 이러한 보다 전체적인 접근 방식은 역사적으로 소프트웨어와 통계가 작동해온 방식과는 근본적으로 다른 거죠. 딥러닝에서 우리는 관심 시스템 외부로 나가서 스스로 수렴하는 더 높은 수준의 프로세스만 사용함으로써 인식론적 불확실성을 인정하죠. 이것은 중요한 구별인데, 복잡한 시스템이 어떻게 만들어지는지에 대한 중요한 진실을 보여주기 때문이죠. 개별적인 것들을 함께 조립하고 내부 연소 엔진처럼 연결하여 복잡성을 만들 수는 없거든요. 신경망 아키텍처는 인공 뉴런의 수와 배열 측면에서 설계되지만, 네트워크 내부의 매개변수가 발견되고 설정되는 프로세스는 우리의 손이 닿지 않는 곳에 있어요.
딥러닝은 내부 및 외부 매개변수를 구별하죠. 가중치와 편향은 모델의 정보 사용 및 변환에 직접적인 영향을 미치는 내부 매개변수이고요. 하이퍼파라미터도 있는데, 이것들은 모델 아키텍처 자체 외부에 존재하죠. 이것들은 학습 프로세스를 관리하는 설정 또는 구성으로 생각할 수 있어요. 학습률, 배치 크기, 에포크 수, 레이어 수 및 레이어당 뉴런 수와 같은 다양한 네트워크 아키텍처 선택 사항이 포함되죠.
엔지니어가 구성하는 것은 하이퍼파라미터이지, 내부 모델 매개변수가 아니에요. 하지만 모델이 작동하려면 내부 모델 매개변수를 특정 구성으로 설정해야 하죠. 이건 AI 엔지니어링이 인간이 이전에 구축한 어떤 것과도 얼마나 다른지 보여주는 거예요. 거의 모든 다른 경우에서, 인간은 시스템의 핵심에 도달하여 에너지와 정보가 시스템을 통해 이동하는 방식에 대한 의도적인 선택을 하려고 하죠.
사람들은 결정론적 프로세스와 비결정론적 프로세스 간의 차이점을 이해하는 데 어려움을 겪어요. 개별적인 인공 뉴런은 코딩의 결정론적 조각인데, 동일한 입력과 가중치가 항상 동일한 출력을 생성하거든요. 이걸 통해 기존의 규칙 기반 컴퓨터 프로그래밍과 일치하게 만들 수 있죠. 그러나 이러한 뉴런들이 집합적으로 함께 작동할 때, 신경망의 행동은 특히 학습 단계에서 거의 결정론적이지 않죠. 이것이 진정으로 복잡한 객체에서 발생하는 중요한 전환이라는 거예요. 무언가가 만들어진 조각과 그 구조와 행동을 정의하는 속성 간에는 심오한 단절이 존재하는 거죠.
정보가 여러 층의 인공 뉴런을 통과하면서, 각 층은 자체 비선형성을 적용하여 네트워크는 입력에서 출력으로 고도로 복잡하고 비선형적인 매핑을 학습하죠. 소규모로 사용되는 결정론적 (규칙 기반) 코드는 대규모로 매우 다른 것을 만들어내요. 그러한 복잡성은 복잡한 객체의 시그니처 역량을 발휘하여 인간이 스스로 디자인할 수 있는 것보다 훨씬 더 깊고 현실적인 방식으로 자연계를 반영하죠.
이것이 AI 시스템이 진정한 복잡성의 징후를 보이는 방법이고, AI를 구축하는 데 사용되는 접근 방식이 자연이 구축하는 방식과 일치하는 이유라는 거죠. 많은 작은 결정론적 비선형성을 모아서 집합적인 비결정론으로 만드는 것은 우리가 자연의 습하고 끈적끈적하고 역동적인 물체에서 보는 것이거든요. 이것은 오늘날의 AI가 자연의 솔루션과 동등하다는 의미가 아니라, 자연 복잡성의 구조와 행동을 반영하고, 사물을 구축하는 데 있어 외부에서 접근하는 방식을 수용할 때 일어나는 일을 보여주는 것뿐이죠. 이것이 범주적으로 어려운 문제를 해결할 수 있는 유일한 방법이라는 거예요. 시스템의 내부 작동 방식에서 벗어나 스스로 수렴하도록 허용해야 하고, 내부가 자연스럽게 해결되도록 허용해야 하죠.
이것이 딥러닝이 일종의 연금술로 여겨지는 이유거든요. 특히 전통적인 엔지니어에게는 많은 불편함을 안겨주죠. AI를 수학적으로 설명하려는 지속적인 노력이 있는데, 이건 복잡성에 정면으로 배치되는 환원주의와 결정론의 냄새를 풍긴다는 거죠. 이 문제에 대해서는 나중에 자세히 설명할게요.
딥러닝 모델은 진정한 복잡성에 가까워지는 객체인데, 그 기능이 우리가 시스템에 넣지 않은 속성에 의존하기 때문이죠. 어떤 의미에서 도시, 금융 시장, AI와 같은 것들은 전혀 만들어진 것이 아니라, 자신들이 이끌었던 더 큰 것과 전혀 닮지 않은 더 작은 것들의 수많은 상호 작용에서 튀어나왔다는 거죠.
AI 시스템이 진정으로 복잡한지 여부보다 더 중요한 것은 AI 엔지니어링이 완전히 다른 패러다임에서 인간이 구축하는 가장 좋은 예라는 사실이에요. 딥러닝은 인간이 항상 해왔던 방식으로 구축하지 않으려는 인간의 첫 번째 의도적인 시도를 나타내는 거죠. 전력망, 도시, 시장, 인터넷의 출현은 나중에 실현되었지만, 딥러닝은 처음부터 근본적으로 다른 패러다임을 수용했다는 거죠. 딥러닝은 컴퓨터에게 작업을 수행하는 방법을 지시하려고 시도하지 않기 때문에 가능해요.
오늘날의 AI 접근 방식이 진정한 인공 일반 지능 (AGI)을 달성하는지 여부는 중요한 점이 아니에요. 딥러닝은 앞으로 다가올 일의 징조라는 거죠. 딥러닝은 인간이 사물을 구축하는 방식을 재정의하는 엔지니어링의 종류를 나타내고, 우리는 선조의 결정론적인 엔지니어링을 사용하여 가장 뛰어난 과제를 해결할 수 없다는 것을 알고 있잖아요.
이것은 단순히 사물을 구축하는 방식의 변화가 아니에요. 지식, 기술, 개인이 경제에 기여할 수 있는 능력에 대한 우리 세계의 현재 정의의 핵심에 도달하는 거죠. 우리의 세계는 디자인이라는 개념을 기반으로 운영되는데, 디자인은 시스템의 핵심에 도달하여 우리가 보는 것을 사용하여 다음 단계를 수행하는 것이 전부이기 때문이에요. 디자인은 건설자의 노력을 기존 구조에 매핑하는 거죠. 이건 자연이 구축하는 방식이 아니에요.
리셋하기
오늘날의 경제와 경제에 기여할 수 있는 사람들의 능력을 뒷받침하는 디자인 기반 구축의 전체 구조에는 대대적인 점검이 필요하다는 거죠. 복잡성의 시대에 창조하는 데 필요한 비결정론을 수용하려면 완전히 다른 접근 방식이 필요하고요. 이 새로운 접근 방식은 우리가 현재 사물을 구축하는 방식과 정반대되는 입장에 뿌리를 두어야 해요.
복잡성이 작동하는 방식에는 근본적인 방향성이 있는데, 그것은 우리가 학문적 이야기에서 듣는 것과 반대 방향이라는 거죠. 좋은 일로 이어지는 것은 기초가 아니라, 우리가 교과서에 코딩하는 구조를 가져오는 것은 혼합, 혼돈, 불확실성이라는 거예요. 더 간단히 말하면, 프로젝트 시작부터 제자리에 놓으라고 하는 기초 작업, 구조화, 디자인은 올바른 구조가 나타나는 데 필요한 것에 정면으로 배치된다는 거죠.
우리가 사물을 구축하는 방식을 리셋하고, 적절한 수준의 가치를 정의하고, 필요한 변화에 맞춰 경제를 만드는 데에는 창발성에 대한 설명이 필요해요. 이를 위해서는 창발성이 무엇인지에 대한 개념적으로 간결한 설명이 필요하죠. 즉, 정보, 계산, 진화에 대한 알려진 과학적 속성과 일치하는 설명 말이에요.
지금까지 그런 설명을 찾지 못했어요. 오늘날의 과학자들이 창발성을 설명하려는 지속적인 시도에도 불구하고, 모든 시도는 동일한 이유로 실패하거든요. 그들은 모두 현재의 과학적 패러다임 내에서 창발성을 설명하려고 시도하죠. 한편으로는 너무 놀라운 일이 아니어야 하는데, 결국 어떻게 논문을 발표하겠어요? 하지만 이건 필연적으로 복잡성에 반하는 환원주의로 이어진다는 거죠.
복잡성에는 과학 및 공학 연대기에서 볼 수 있는 것과는 다른 종류의 설명이 필요해요. 인과 관계에 대한 설명이 아니라 속성에 대한 설명이죠. 시스템의 핵심에 도달하지 않고, 오래된 평균 및 재정규화 개념을 그 조각에 래핑하지 않는 종류의 설명이라는 거예요. 그러한 설명은 우리가 상위 수준에서 관찰하는 것이 하위 수준에서 보는 것의 뭉개진 흐릿한 버전일 뿐이라고 잘못 제시한다는 거죠. 그러한 시도는 오래된 근본 원인 및 경로 개념에 젖어 있으며, 복잡성을 단순 시스템의 선형성 및 결정론으로 강압적으로 만들려고 시도하지만 성공하지 못해요.
대신, 우리는 복잡성을 어려운 문제를 해결하는 물리적 시스템이 스스로 조직화된 구성에 정착함으로써 필연적으로 성장하는 것으로 볼 수 있다는 거죠. 우리는 엄격한 인과 관계에 의해 물질을 함께 부르는 이론에 호소할 필요도 없고, 지식의 격차를 의미 없는 추상적 설명으로 채우려고 시도하는 불분명한 주장을 만들어낼 필요도 없어요. 무언가에 대한 인과적 설명이 없다고 해서 설명할 수 없다는 의미는 아니거든요. 조각들이 서로 부딪히는 방식에 대한 동화 이야기를 꾸며내지 않고도 자연 시스템의 속성과 제약 조건을 준수하는 메커니즘을 밝혀낼 수 있는 거죠.
복잡성에 직면한 추상화에 의한 진전이 제기하는 장애물에 대한 해결책을 향한 첫 번째 단계는 분명하다는 거죠. 인간은 항상 자연에서 영감을 얻었잖아요. 우리가 만드는 대부분의 것들은 우리를 둘러싼 자연 시스템에서 찾을 수 있는 대응물이 있고요. 우리에게 가능한 것을 알려주는 것은 자연이라는 거죠. 그러나 자연을 우리의 뮤즈로 사용하는 것만으로는 더 이상 충분하지 않아요. 자연은 우리에게 가능한 것 이상을 알려주거든요. 우리가 한 걸음 물러서서 환원주의와 결정론에 대한 의존성을 버리고, 복잡성을 있는 그대로 받아들인다면, 자연이 어떻게 복잡한 솔루션을 만들어내는지도 배울 수 있다는 거죠. 우리는 자연이 구축하는 방식으로 구축하는 법을 배울 수 있어요.