인공 지능을 작성하는 방법. 인공 지능. 창조의 모순과 문제. 인공지능이 인간을 이기는 이유

인공 지능이 만든 신경망 2017년 12월 15일

우리는 인공 지능이 스스로 신경망을 만드는 시점까지 살아왔습니다. 많은 사람들이 그들이 하나이고 동일하다고 생각하지만. 그러나 실제로 모든 것이 그렇게 간단하지는 않습니다. 이제 우리는 그것이 무엇인지, 누가 누구를 만들 수 있는지 알아 내려고 노력할 것입니다.


Google Brain 부서의 엔지니어들은 이번 봄에 AutoML을 시연했습니다. 이 인공 지능은 인간의 개입 없이 고유한 AI를 생성할 수 있습니다. 최근 밝혀진 바와 같이 AutoML은 처음으로 컴퓨터 비전 시스템인 NASNet을 만들 수 있었습니다. 이 기술은 이전에 사람들이 만든 모든 아날로그를 심각하게 능가합니다. 이 AI 기반 시스템은 자율주행차 개발에 큰 도움이 될 수 있습니다. 이는 로봇에도 적용 가능합니다. 로봇은 완전히 새로운 수준에 도달할 수 있을 것입니다.

AutoML의 개발은 고유한 강화 학습 시스템을 기반으로 합니다. 우리는 특정 작업을 위해 설계된 완전히 새로운 신경망을 독립적으로 개발하는 관리 신경망에 대해 이야기하고 있습니다. 우리가 지적한 경우 AutoML은 실시간으로 실시간으로 비디오의 객체를 가장 정확하게 인식하는 시스템을 만드는 것을 목표로 합니다.

인공 지능 자체가 새로운 신경망을 훈련하고 오류를 추적하고 작업을 수정할 수 있었습니다. 훈련 과정은 시스템이 작업에 적합할 때까지 여러 번(수천 번) 반복되었습니다. 흥미롭게도 그녀는 현재 사용 가능한 유사한 신경망을 우회할 수 있었지만 사람이 설계하고 훈련했습니다.

동시에 AutoML은 NASNet의 성능을 평가하고 이 정보를 사용하여 하위 네트워크를 개선합니다. 이 과정은 수천 번 반복됩니다. 엔지니어가 ImageNet 및 COCO 이미지 세트에서 NASNet을 테스트했을 때 기존의 모든 컴퓨터 비전 시스템보다 성능이 뛰어났습니다.

구글은 공식적으로 NASNet이 82.7%의 정확도로 인식한다고 밝혔습니다. 그 결과는 모멘타 연구진과 옥스포드 전문가들이 올해 초가을에 세운 종전 기록보다 1.2% 높은 것이다. NASNet은 평균 정확도가 43.1%로 동급 제품보다 4% 더 효율적입니다.

모바일 플랫폼에 맞게 조정된 NASNet의 단순화된 버전도 있습니다. 아날로그를 3% 이상 능가합니다. 가까운 장래에 컴퓨터 비전이 중요한 자율주행 자동차 생산에 이 시스템을 사용할 수 있게 될 것입니다. AutoML은 계속해서 새로운 유전 신경망을 생성하여 더 높은 곳을 정복하기 위해 노력하고 있습니다.

물론 이것은 AI에 대한 우려와 관련하여 윤리적인 질문을 제기합니다. AutoML이 사회가 따라갈 수 없는 속도로 시스템을 구축하면 어떻게 될까요? 그러나 많은 대기업 AI의 보안 문제를 고려하십시오. 예를 들어 Amazon, Facebook, Apple 및 기타 일부 기업은 사람과 사회에 혜택을 주는 AI 파트너십의 회원입니다. IEE(Institute of Electrical and Engineers)도 AI에 대한 윤리 표준을 제안했으며, 예를 들어 DeepMind는 인공 지능 적용과 관련된 도덕적, 윤리적 문제를 다룰 그룹의 창설을 발표했습니다.

그러나 많은 대기업들이 AI의 보안 문제를 고려하려고 합니다. 물론 이것은 AI에 대한 우려와 관련하여 윤리적인 질문을 제기합니다. AutoML이 사회가 따라갈 수 없는 속도로 시스템을 구축하면 어떻게 될까요? IEE(Institute of Electrical and Engineers)도 AI에 대한 윤리 표준을 제안했으며, 예를 들어 DeepMind는 인공 지능 적용과 관련된 도덕적, 윤리적 문제를 다룰 그룹의 창설을 발표했습니다. 예를 들어 Amazon, Facebook, Apple 및 기타 일부 기업은 사람과 사회에 혜택을 주는 AI 파트너십의 회원입니다.

인공 지능이란 무엇입니까?

"인공 지능"이라는 용어의 저자는 Lisp 언어의 발명가이자 함수형 프로그래밍의 창시자이자 인공 지능 연구 분야에 대한 공헌으로 Turing Award를 수상한 John McCarthy입니다.
인공 지능은 인간처럼 지능적으로 생각할 수 있는 컴퓨터, 컴퓨터 제어 로봇 또는 프로그램을 만드는 방법입니다.

AI 분야의 연구는 연구를 통해 수행됩니다. 정신 능력이 연구의 결과는 지능형 프로그램 및 시스템 개발의 기초로 사용됩니다.

신경망이란 무엇입니까?

신경망의 아이디어는 매우 단순한 요소에서 복잡한 구조를 조립하는 것입니다. 뇌의 한 부분이 지능적인 것으로 간주될 가능성은 거의 없지만 사람들은 일반적으로 IQ 테스트에서 놀라울 정도로 잘합니다. 그럼에도 불구하고 지금까지 "무에서"마음을 창조한다는 아이디어는 일반적으로 조롱되었습니다. 타자기를 든 천 마리의 원숭이에 대한 농담은 이미 100 년 전이며 원하는 경우 신경망에 대한 비판은 심지어 다음에서도 찾을 수 있습니다. 조만간 의미 있는 텍스트가 나올 수 있도록 얼굴이 파랗게 질 때까지 글자가 있는 토큰을 허공에 던지자고 비꼬는 말을 한 Cicero. 그러나 21세기에 고전이 헛된 비꼬는 것으로 밝혀졌습니다. 적절한 인내로 세계를 장악할 수 있는 것은 토큰을 가진 원숭이 군대입니다.
사실, 신경망은 성냥갑에서 조립할 수도 있습니다. 이는 정보가 처리되는 간단한 규칙의 집합일 뿐입니다. "인공 뉴런" 또는 퍼셉트론은 특별한 장치가 아니라 몇 가지 산술 연산이라고 합니다.

퍼셉트론은 가장 쉽게 작동하지 않습니다. 여러 초기 숫자를 수신하고 각각에 이 숫자의 "값"(약간 더 낮음)을 곱하고 더한 다음 결과에 따라 1 또는 -1을 제공합니다. 예를 들어, 우리는 열린 필드를 촬영하고 이 사진의 특정 지점을 뉴런에 표시합니다. 즉, 임의의 좌표를 두 개의 신호로 보냅니다. 그리고 나서 우리는 "친애하는 뉴런, 이것은 하늘입니까 땅입니까?"라고 묻습니다. - "마이너스 원" 더미가 적운을 고요히 바라보며 대답합니다. “땅이 분명하다.”

퍼셉트론의 본업은 '하늘을 찌르는 것'이다. 그에게서 정확성을 기대할 수 없습니다. 동전을 던질 수 있습니다. 마법은 기계 학습이라고 하는 다음 단계에서 시작됩니다. 결국 우리는 정답을 알고 있습니다. 즉, 우리 프로그램에 쓸 수 있습니다. 따라서 각 잘못된 추측에 대해 퍼셉트론은 문자 그대로 벌금을 받고 정확한 추측에 대해서는 보너스를 받습니다. 들어오는 신호의 "값"이 증가하거나 감소합니다. 그 후 프로그램이 실행됩니다. 새로운 공식. 조만간 뉴런은 사진에서 지구가 아래에 있고 하늘이 위에 있다는 것을 필연적으로 "이해"할 것입니다. 즉, x 좌표가 전달되는 채널의 신호를 무시하기 시작합니다. 그런 경험 많은 로봇이 다른 사진에서 미끄러지면 수평선을 찾지 못할 수도 있지만 확실히 상단과 하단을 혼동하지 않을 것입니다.

실제 작업에서는 공식이 조금 더 복잡하지만 원칙은 동일하게 유지됩니다. 퍼셉트론은 한 가지 작업만 수행할 수 있습니다. 숫자를 가져와서 두 더미로 분류합니다. 들어오는 숫자가 다른 "벽돌"의 신호가 될 수 있기 때문에 가장 흥미로운 것은 이러한 요소가 여러 개 있을 때 시작됩니다! 하나의 뉴런이 파란색과 녹색 픽셀을 구별하려고 시도하고, 두 번째 뉴런이 계속 좌표를 만지작거리며, 세 번째 뉴런이 이 두 결과 중 어느 것이 진실에 더 가까운지 판단하려고 한다고 가정해 보겠습니다. 파란색 픽셀에 여러 개의 뉴런을 한 번에 설정하고 결과를 요약하면 "우수 학생"이 추가 보너스를 받는 전체 레이어를 얻게 됩니다. 따라서 충분히 확산된 네트워크는 산더미 같은 데이터를 삽질하고 모든 오류를 고려할 수 있습니다.

성냥갑을 사용하여 신경망을 만들 수 있습니다. 그러면 파티에서 손님을 즐겁게 할 수 있는 트릭이 무기고에 있을 것입니다. MirF 편집자는 이미 시도했으며 인공 지능의 우수성을 겸허히 인정합니다. 11개의 막대기 게임을 하는 방법을 생각 없는 문제에게 가르쳐 줍시다. 규칙은 간단합니다. 테이블에는 11개의 성냥이 있으며 각 이동에서 하나 또는 두 개를 선택할 수 있습니다. 마지막 하나를 가져가는 사람이 승리합니다. "컴퓨터"에 대해 게임을 하는 방법?

매우 간단합니다.

우리는 10 상자 또는 컵을 가져갑니다. 각각에 2에서 11까지의 숫자를 쓰십시오.

우리는 각 상자에 두 개의 자갈을 넣습니다 - 흑백. 서로 다른 모든 항목을 사용할 수 있습니다. 그게 다야 - 우리는 10개의 뉴런 네트워크를 가지고 있습니다!

신경망은 항상 먼저 갑니다. 시작하려면 남은 경기 수를 확인하고 해당 숫자가 있는 상자를 가져오세요. 첫 번째 턴에 상자 번호 11이 됩니다. 오른쪽 상자에서 조약돌을 가져옵니다. 눈을 감거나 동전을 던질 수 있습니다. 가장 중요한 것은 무작위로 행동하는 것입니다.
돌이 흰색이면 신경망은 두 번의 매치를 선택합니다. 검은 색이면 - 하나. 어느 "뉴런"이 결정을 내렸는지 잊지 않도록 상자 옆에 자갈을 놓습니다. 그 후, 한 사람이 걷는 등 경기가 끝날 때까지 계속됩니다.

이제 재미있는 부분이 나옵니다: 학습. 네트워크가 게임에서 이기면 보상을 받아야 합니다. 게임 중에 떨어진 동일한 색상의 조약돌 하나를 이 게임에 참여한 "뉴런"에 추가로 던집니다. 네트워크가 손실되면 마지막으로 사용한 상자를 가져 와서 거기에서 실패한 돌을 꺼냅니다. 상자가 이미 비어 있는 것으로 판명될 수 있으며, 이 경우 이전의 유사한 뉴런이 마지막 뉴런으로 간주됩니다. 다음 게임에서 빈 상자를 치면 신경망이 자동으로 포기합니다.

그게 다야! 이와 같은 게임을 몇 가지 하십시오. 처음에는 의심스러운 점을 눈치채지 못하겠지만, 승리할 때마다 네트워크는 점점 더 성공적인 움직임을 보일 것입니다. 그리고 약 12개의 게임 후에 당신이 이길 수 없는 괴물을 만들었다는 것을 깨닫게 될 것입니다.

출처:

일련의 기사에서 우리는 대부분의 AI 전문가와 대중이 사용할 수 없는 AI, 성격 모델링 및 BIG 데이터 처리의 새로운 접근 방식에 대해 이야기할 것입니다. 이 정보의 가치는 모든 것이 실제로 테스트되었으며 대부분의 이론적 개발이 응용 프로젝트에서 구현되었다는 것입니다.

많은 사람들이 오늘날 인공 지능의 개념과 관련된 현대 기술, 즉 전문가 시스템, 신경망, 언어 알고리즘, 하이브리드 시스템, 인지 기술, 시뮬레이션(챗봇)에 대해 들어본 적이 있습니다.

예, 많은 회사에서 위의 기술을 사용하여 정보 처리에서 고객의 문제를 해결합니다. 이 회사 중 일부는 인공 지능 솔루션을 만들거나 만들었습니다. 그런데 지능이요?

우리가 할 첫 번째 일은 지능이 무엇인지 정의하는 것입니다.

지능이 있는 컴퓨터가 있다고 상상해보십시오. 그리고 음성이나 문자 메시지를 통해 그와 의사 소통할 수 있는 옵션이 있습니다.
질문:
  • 컴퓨터 지능 프로그램에 언어 기능을 구축해야 합니까(의미론, 문법, 형태론 설명) 아니면 사람과의 상호 작용을 통해 스스로 언어를 배울 수 있습니까?
  • 컴퓨터에 언어를 가르치는 임무가 주어진다면 무엇을 하시겠습니까?
  • 당신이 훈련에 참여했다면 그는 어떤 모습이었을까요?
그리고 지금, 당신이 가르쳐야 할 유일한 차이점으로 다음 질문에 다시 답하십시오.
  • 이론적으로 의사 소통이 가능한 순종 앵무새.
  • 새로 태어난 아기.
이제 막 지적 작업을 했고 많은 분들이 새로운 지식을 얻으셨기를 바랍니다. 그리고 그 이유는 다음과 같습니다.
  • 먼저 "만약에… 당신은 변화된 환경에서 행동했습니다. 아마도 당신은 정보와 지식이 부족하여 어려웠을 것입니다.
  • 둘째, 당신은 학습, 인지 능력이 있는 것으로 나타났습니다. 당신은 당신에게 친숙한 비유를 찾거나 텍스트에서 만났거나 아마도 인터넷을 사용하거나 친구에게 조언을 구했을 것입니다.
지능을 정의하는 방법에는 여러 가지가 있습니다. 우리는 그것의 주요 기능을 정의할 것입니다 ...

가장 먼저 지능은 배우고 상상하는 능력이다.

지능을 시뮬레이션하는 알고리즘을 만들기 위해 가장 먼저 해야 할 일은 그에게 배울 수 있는 능력을 주어라, 그것에 투자하는 데 지식이 필요하지 않습니다.

학습 과정을 더 자세히 설명하기 위해 우리 아이의 예로 돌아가 보겠습니다.
어린이가 언어를 이해하고 말하는 법을 배울 때 어떤 원칙이 작용합니까?

  1. 그는 다른 맥락에서 단어를 더 자주 들을수록 더 빨리 기억할 것입니다. 그가 가장 먼저 하는 말은 '엄마'다.
    "엄마는 너를 사랑해"
    "엄마가 손 씻을게"
    "엄마가 키스해"
    "엄마는 어디있니?"
    학습은 데이터 중복성을 희생하면서 발생합니다.
  2. 더 많은 정보 채널이 포함될수록 교육 효과가 더 높아집니다.
    아이는 "엄마는 너를 사랑해"라고 듣습니다.
    아이는 엄마의 미소를 봅니다.
    아이는 엄마에게서 발산되는 따뜻함을 느낍니다.
    아기는 모유의 맛과 냄새를 느낍니다.
    아이는 "엄마"라고 말합니다.
  3. 아이는 바로 단어를 재현할 수 없습니다. 그는 노력할 것입니다. "M", "Ma", "엄마", "M"... "엄마". 학습은 실제로 이루어지며 다음 시도는 결과를 얻을 때까지 수정됩니다. 시행 착오 방법. 현실로부터 피드백을 받는 것은 매우 중요합니다.
  4. 자녀를 교육하지 마십시오. 그들은 여전히 ​​​​당신처럼 보일 것입니다. 아이는 주변 사람들처럼 되려고 노력합니다. 그는 그들을 모방하고 그들에게서 배운다. 이것은 성격 모델링의 메커니즘 중 하나이며 향후 기사에서 더 자세히 설명합니다.

상상의 역할은?

낯선 고속도로에서 자동차를 운전하고 있다고 상상해보십시오. 80km/h의 속도 제한 표지판을 통과했습니다. 계속 운전하면 또 다른 속도 제한 표지판이 보이지만 진흙이 흩뿌려져 있고 거의 해독할 수 없습니다. 당신은 95km/h의 속도로 움직이고 있습니다. 당신은 무엇을 할 것인가? 당신이 결정을 내리는 동안 경찰관이 수풀 뒤에서 내다보았고 당신은 그의 얼굴에 환한 미소를 보았습니다. 머릿속에 '표지판의 이미지'가 순식간에 완성되었고, 경찰관이 서 있는 이유와 급하게 브레이크를 밟아야 한다는 것을 이해했습니다. 속도를 55km/h로 낮추면 경찰관의 얼굴에 미소가 순식간에 사라지고 계속 운전합니다.

그리고 하나 더 흥미로운 예동물계의 상상력 작품은 까치 관찰이다. 까치는 다른 까치들 앞에서 황무지에 음식을 묻었습니다. 까치는 다 날아갔지만 우리 까치는 황무지로 돌아와 먹이를 숨겼습니다. 무슨 일이에요? 그녀는 음식을 숨긴 곳을 본 다른 까치가 "만약에 일어난다면 어떻게 될지"를 상상했습니다. 그녀는 상황을 모델링하고 이를 피하기 위한 해결책을 찾았습니다.

상상은 임의의 조건에서 상황을 시뮬레이션하는 것입니다.

이미 보았듯이 지능은 지식 기반이 아니며 프로그래밍된 반응 집합이나 미리 결정된 규칙을 따르는 것이 아닙니다.

지능은 어려움을 해결하는 과정에서 변화하는 조건을 배우고 인식하고 적응하는 능력입니다.

지능을 정의하는 과정에서 우리가 몇 가지를 놓쳤다고 생각하지 않습니까? 중요한 구성 요소아니면 할 말을 잊으셨나요?

예, 우리는 지각의 시력을 잃었고 기억에 대해 말하는 것을 잊었습니다.

엿보는 구멍을 통해 편지의 일부를 본다고 상상해보십시오.

이 편지는 무엇입니까?

아마도 "K"?

물론 '영원'을 뜻하는 일본어입니다.

작업(문제)을 설정하기 전에. 아마도 머리에서 "K"라는 글자와 비슷한 이미지를 발견하고 진정되었을 것입니다.

당신의 지능은 모든 것을 이미지로 인식하고 메모리에서 유사한 이미지를 찾습니다. 기억에 없는 경우 기존 이미지에 바인딩(앵커)이 형성되고 덕분에 새로운 정보를 암기하고 기술이나 경험을 얻습니다.

이미지 - 감각 (정보 채널)의 도움으로 인식되는 실제 세계의 주관적인 비전.

지각은 학습의 순서, 사람의 삶에서 이미지가 나타나는 순서 및 그 영향에 의존하기 때문에 주관적입니다.

인식은 명암 패턴 인식으로 시작됩니다. 눈을 뜨십시오 - 밝음, 닫기 - 어두움. 또한, 사람은 "어머니", "아빠", 공, 테이블, 개와 같은 점점 더 복잡한 이미지를 인식하는 법을 배웁니다. 우리는 참조 데이터를 수신하고 모든 후속 이미지는 이전 이미지에 대한 추가 기능입니다.

이러한 관점에서 학습은 지각된 이미지와 이미 기억 속에 있는 이미지 사이에 새로운 관계를 구축하는 과정입니다.

기억은 이미지와 그 관계를 저장하는 역할을 합니다..

하지만 상상력은 미완성된 이미지를 완성하는 능력이다.

요약하자면 다음은 동물 세계의 또 다른 실험입니다.

침팬지는 새장에 갇혔고 새장 안에는 바닥에서 꽤 높은 바나나 다발을 걸었습니다. 침팬지는 처음에는 펄쩍 뛰었지만 금세 지쳐 바나나에 흥미를 잃은 듯 쪼그려 앉았다. 그러나 잠시 후 원숭이는 우리에 남겨진 막대기를 집어 들고 바나나가 떨어질 때까지 흔들었습니다. 또 다른 경우에는 침팬지가 두 개의 막대기를 연결하여 바나나를 얻을 수 있었습니다. 각 막대기만으로는 도달하기에 충분하지 않았기 때문입니다. 동물은 예기치 않게 바나나 아래에 상자를 놓고 계단으로 사용하여 더 어려운 작업에 대처했습니다.

침팬지는 그녀에게 친숙한 "바나나 뭉치" 이미지를 보여주었습니다. 그러나 그녀의 이미지는 불완전한 것으로 판명되었습니다. 꺼내서 먹을 수 없습니다. 그러나 이것이 먹을 수 있는 유일한 공급원이었기 때문에 미완성된 이미지는 내부 긴장을 조성하고 완성을 요구했습니다.

문제를 풀기 위한 수단(이미지 완성)은 항상 존재했지만, 솔루션의 출현은 기존 이미지의 변형을 요구했습니다(상상력의 도움으로 학습이 필요했습니다). 침팬지는 상상할 필요가 있었습니다(가능한 모든 옵션을 정신적으로 나열): "내가 막대기를 잡으면 어떻게 되는지", "만약 ..." 및 실제로 테스트하고 피드백을 받고 다시 상상할 가능성이 가장 높은 가정 , 시도, 피드백 연결 등을 이미지가 완성될 때까지 계속하십시오(학습).

상형 문자 "영원"의 이미지를 인식하는 것이 당신에게 삶과 죽음의 문제가 될 것이라면, 당신은 분명히 그것을 할 방법을 찾을 것입니다.

좀 더 대중적인 언어에서 기술적인 언어로 넘어가서 추가로 사용할 기본 개념을 공식화해 보겠습니다.

  • 서로 다른 정보 채널의 중복 정보가 교차하여 이미지가 생성됩니다.
  • 배움은 변화다 정보 흐름정보 필드에서.
  • 정보 필드(메모리) - 이미지 및 그 관계의 저장.
  • 상상이란...
    - "독자 여러분, 당신의 삶의 경험과 이 기사의 중복 정보를 사용하여 상상의 이미지를 스스로 완성하십시오."
  • 지능은 배우고 상상하는 능력입니다.

기사 시작 부분에서 우리는 오늘날 인공 지능과 관련된 기술을 나열했습니다. 이제 지능 개념에 얼마나 부합하는지 독립적으로 평가할 수 있습니다.

다음 기사에서는 인터넷에서 정보를 지적으로 검색하는 것과 같은 작업을 고려할 것입니다. 지능의 기준을 정의하고, 실용적인 접근 방식을 개발하고, 이 기사에서 설명하는 원칙을 구현하는 실제 응용 프로그램을 "느껴봅시다".

이 기사는 사실이라고 주장하지 않으며 당사의 개발 및 연구의 일부입니다. 의견을 작성하고 귀하의 예 또는 생각으로 자료를 보완하십시오. 배우고 상상하고...

"인공 지능" 또는 AI(인공 지능)라는 말 뒤에 무엇이 숨겨져 있는지 모든 사람이 아는 것은 아닙니다. 대부분의 사람들은 AI를 스스로 "생각"하고, 지능적인 결정을 내리고, 자극에 반응하도록 프로그래밍된 컴퓨터로 생각할 것입니다. 이 생각이 완전히 옳은 것은 아닙니다. 컴퓨터와 기계는 실제로 생각할 수 없습니다. 왜냐하면 "영혼이 없는 기계"에는 없는 의식의 존재가 필요하기 때문입니다. 컴퓨터는 사람이 시키는 대로만 할 수 있습니다.

AI 프로그래밍에 대해 간단히

AI 프로그래밍은 컴퓨터에게 생각하는 방법을 가르치는 것이 아닙니다. 오히려 그는 자신의 경험을 바탕으로 특정 문제를 배우고 해결하도록 프로그래밍됩니다. 그러나 여기에서도 우리는 우리 자신의 생각이 아니라 모방에 대해 이야기하고 있습니다. 이것은 AI가 내리는 결정에도 적용됩니다. 옵션을 평가한 다음 선택할 수 있습니다. 그러나 선택은 항상 이전에 프로그래밍된 매개변수를 기반으로 합니다.

따라서 인공 지능은 컴퓨터에 미리 정해진 것만 할 수 있지만 사람보다 더 좋고 정확하고 빠릅니다. 그건 그렇고, 프로그래밍 방법을 배우고 싶다면 초보자 프로그래머를 위한 팁을 살펴보십시오.

인공 지능의 사용

인공지능은 이미 복잡한 컴퓨터 게임및 검색 엔진. AI를 프로그래밍할 때 컴퓨터 과학이나 수학뿐만 아니라 복잡한 학문 분야가 중요한 역할을 합니다. 철학, 심리학, 신경학 및 언어학은 매우 중요합니다.

인공 지능은 신경과 상징(강함과 약함)으로 나뉩니다. 인간 두뇌의 구조와 기능을 모방하려는 첫 번째 시도. 후자는 관련 문제와 결과에 중점을 둡니다.

예를 들어 일상 생활에서 인공 지능은 프로그래밍되어 로봇에 사용됩니다. 생산 공정을 제어하거나 단순히 수행하는 역할을합니다. 집안일. 시각화에도 사용됩니다. 가장 많이 사용되는 예는 얼굴 또는 지문 인식입니다.

인공 지능 생성의 또 다른 단계는 지식 기반 시스템입니다. 그런 다음 프로그래밍과 관련된 데이터가 프로그램에 입력됩니다. 이를 통해 인공 지능은 논리적이고 독립적으로 답변을 제공할 수 있습니다. 질문. 그러나 이러한 '독립적인 답변'은 인공지능이 본래 타고난 지식에만 근거한 것이다.

이 부분에서는 더도 덜도 말고 지적 활동의 기초가 되는 알고리즘에 대해 설명합니다. 동시에 우리는 자연 지능에서 유사한 현상이 어떻게 발생할 수 있는지에 대한 질문에 답하려고 노력할 것입니다. 물론 우리는 지능의 모든 비밀을 밝히지 않고 황혼의 두뇌를 만들지 않을 것이지만 원칙, 더 파헤쳐야 할 주요 방향을 찾을 것입니다. 우리는 인간의 지성에 대해 더 많이 배울 것입니다. 지금 당장 컴퓨터에서 프로그래밍할 수 있는 알고리즘의 실용적인 스케치도 있을 것입니다.

그러나 먼저 간단히 이전 부분()에서 도달한 것입니다. 나 자신도 이미 그곳에 무엇이 있었는지 잊어버렸기 때문에 다시 상기시켜야 할 것입니다. 그렇지 않으면 더 이상 말할 수조차 없을 것입니다. :) 기억하는 사람 - 이 섹션을 건너뛰세요.

과거에 무슨 일이

Penrose는 그의 훌륭한 책에서 뇌가 절대적으로 참된 판단을 내릴 수 있다고 믿으며 정신적 과정의 기초는 유한한 시간에 영원한 계산을 수행할 수 있는 물리적 과정이라고 주장합니다. 더욱이 이러한 과정은 아무 것도 계산하지 않고 가장 진실한 의미에서 절대적이고 반박할 수 없는 진리를 계산합니다. 그리고 뇌는 이러한 과정을 "끌어올" 수 있습니다. 이것이 뇌가 작동하기 위해 그러한 과정이 필요한 이유입니다. 그리고 오늘날의 물리학에서는 그러한 과정이 알려지지 않았지만, Penrose는 이러한 과정을 기반으로 한 우주의 더 깊은 수준은 다른 현실이라고 믿습니다.

여러 면에서 Penrose는 이 다른 현실에 대해 옳았고, 더 나아가 언젠가 우리는 우주의 기초에 놓여 있는 것에 대해 똑같이 흥미롭고 유사한 아이디어를 공유할 것입니다. 그러나 그럼에도 불구하고 펜로즈는 서둘러서, 말하자면 몇 걸음 더 뛰었습니다. 대부분의 지적 활동은 (전부는 아닐지라도) 더 산만하고 평범한 용어로 설명될 수 있습니다.

Penrose의 의심할 여지 없는 장점은 그가 그 이유를 설득력 있게 설명했다는 것입니다. 지적 활동형식 논리(또는 엄격한 알고리즘)를 기반으로 할 수 없습니다. 더 정확하게 말하면, Penrose는 알려진 물리적 과정에서 절대적으로 참된 논리(Penrose가 이해하는 지적 활동이기도 함)가 불가능하다는 것을 보여주었습니다. 그러나 우리는 그것을 우리 자신의 방식으로 이해했습니다. 즉, 지적 활동에는 절대적으로 참된 논리가 필요하지 않습니다. 다시 말해서, 인간의 지성은 그럴듯하고, 그것은 진실에 대한 좋은 근사치를 산출하지만 여전히 오류의 가능성이 있습니다. 그리고 이것은 문제를 근본적으로 변화시킵니다. 즉, 자연 지능을 설명하는 방법과 인공 지능을 구축하는 방법에 대한 접근 방식을 완전히 바꿉니다. 그리고 그러한 지능은 기존 컴퓨터에서 프로그래밍된 튜링 기계에서 모델링될 수 있지만, 양자 또는 광학과 같은 고유한 병렬 처리와 더 큰 전력의 아키텍처를 갖는 것이 더 좋습니다.

이제 논리의 진실이 아닌 진실을 둘러싼 소란이 무엇인지 생각해 봅시다. 수학적 및 컴퓨터 계산, 인간의 반성, 논리적 구성 및 추론은 알고리즘 또는 형식 시스템의 개념과 관련이 있습니다(사실 이것은 동일한 것입니다). 알고리즘의 실행(공식 시스템 규칙의 적용이기도 함)은 모든 종류의 계산, 반영 및 기타 물리적 프로세스(또는 적어도 상당히 좋은 근사값)의 모델입니다. 알고리즘은 일부 추상 컴퓨터(튜링 머신)가 단계적으로 순차적으로 실행할 수 있는 일련의 명령입니다.

엄격한 알고리즘의 개념이 있습니다(완전하고 일관된 형식 시스템이기도 합니다). 동일한 입력 데이터 세트에서 엄격한 알고리즘 결정적인단계의 수는 동일한 대답을 줄 것입니다. 형식 시스템 및 논리적 추론에 적용할 때 이는 초기 조건에 대해 유한한 시간 내에 진정한(일관되고 모호하지 않은) 답을 찾을 수 있음을 의미합니다. 이러한 계산을 결정론적이라고도 합니다.

그러나 이러한 조건이 충족되지 않는 비결정적(비엄격) 알고리즘도 있습니다(불완전/모순 형식 시스템이기도 함). 알고리즘의 경우 유한 조건을 준수하지 않는다는 것은 알고리즘이 계산을 마칠지 여부를 알 수 없으며 이에 대해 미리 알아내는 방법이 명확하지 않다는 것을 의미합니다. 비결정적 알고리즘은 계산을 완료하거나 영원히 방황할 수 있지만 정확히 무엇을 하는지는 영원히 추측할 수 있는 미스터리입니다. 형식 시스템의 경우 원래 진술의 참 또는 거짓에 대한 증명이 언젠가는 이해할 수 없을 정도로 완료되거나 영원히 계속될 것입니다. 불일치는 공식 시스템 내에서 원래 진술에 대해 참과 거짓 답변을 모두 제공하는 다양한 규칙 체인을 선택할 수 있음을 의미합니다. 알고리즘의 경우 이는 동일한 데이터에서 다른 결과를 얻을 수 있음을 의미합니다.

펜로즈를 비롯한 많은 사람들은 지적 활동이 엄격한 형식 논리를 기반으로 한다고 말합니다. 그러나 여기에 글로벌 매복이 있습니다. 괴델의 오랜 정리에 따르면 형식 체계는 완전하고 일관성이 있을 수 없습니다. 완전성은 형식 시스템이 지식 분야에 대한 모든 것을 알고 있음을 의미합니다. 그러한 시스템을 포함하면 그 자체로 진실을 판단할 수 있습니다. 외부의 누군가가 공식 시스템을 만들면 작동할 수 있으며 올바른 결과를 생성하고 이 사람이 올바르게 만들었는지 여부에 대해서는 전혀 신경 쓰지 않습니다. 공식 시스템이 올바르게 수행되었는지 확인하려고 하면 실패합니다. 우리 시스템은 일관성이 있지만 완전하지는 않기 때문입니다. 시스템이 자체의 정확성(완전함)을 판단할 수 있다면 그러한 시스템은 내부 모순을 가질 것이고 그 활동의 결과가 반드시 정확하지는 않습니다. 왜요? 자기 테스트(자기 지식, 자기 반성)의 문제가 영원한 계산의 범주에 속하기 때문입니다.

이것으로부터 다음은 무엇입니까? Penrose에 따르면 인간 지성은 완전하고 일관된 시스템으로 밝혀졌습니다. 왜냐하면 진정한 진술을 생성하고 동시에 자체의 정확성을 모니터링할 수 있기 때문입니다. 그러나 괴델의 정리에 따르면 이것은 불가능합니다. 따라서 우리는 짧은 순간에 영원을 보고 답을 찾고 이 답을 뇌에 되돌려 줄 수 있는 지성의 작업을 위해 알려지지 않은 물리적 과정을 포함해야 합니다. 그러나 우리가 이미 언급했듯이, 지성은 완전하고 일관성이 있을 필요는 없지만, 그것이 매우 그럴듯하게 참되고 오류가 없는 척 할 수는 있습니다.

두 번째 매복은 물리학이 형식 논리가 작동하는 개체를 알지 못한다는 것입니다. 즉, 형식적 추론은 종종 자연수의 개념, 참과 거짓의 개념을 기반으로 합니다. 자연수는 1+1 = 2, 2+1 = 3 등입니다. 참 = 1, 거짓 = 0, 참 = 거짓의 부정. 모든 단위는 서로 절대적으로 동일하며 합계 조건의 순열은 변경되지 않습니다. 예, 문제는 우리 세계에는 자연수와 명확하게 비교할 수 있는 그러한 입자, 그러한 사물 또는 프로세스가 없으며 동시에 모든 범위에서 이러한 개체에 대해 산술 규칙이 충족된다는 것입니다. 일부 범위에서는 산술이 거의 정확하지만 전역 오류가 시작됩니다. 따라서 형식 논리는 대략적으로 말하면 본질이 다소 모호한 실체를 이해하지 못한 채 작동합니다. 더욱이, 산술 자체는 완전하고 일관된 시스템에 적용되지 않습니다. 재미있는 사실. 그리고 일반적으로 절대 진리, 자연수와 같은 개념은 원칙적으로 존재할 수없는 것 같습니다. 방법과 이유는 다음 부분에서 설명합니다.

이것으로부터 다음은 무엇입니까? 두뇌에서, 심지어 컴퓨터에서도 발생하는 모든 프로세스, 모든 계산은 본질적으로 불완전하거나 모순적이지만 동시에 완전하고 일관된 계산에 대한 그럴듯한 근사치를 제공합니다.

왜 펜로즈는 모순된 형식 체계를 싫어하고, 왜 펜로즈는 그것들이 지적 활동의 기초가 될 권리를 부정하는가? 일관되지 않은 형식 시스템에서 동일한 데이터에 대해 1 = 2 등이라는 사실까지 참 및 거짓 진술을 모두 도출할 수 있음을 기억합니다. 이를 바탕으로 Penrose는 일관성 없는 시스템이 언제나(!)상충되는 결과를 제공합니다. 여기에서 Penrose는 혼돈 과정에 대한 매우 좁은 해석을 따르며, 이러한 과정은 평균적으로 엄격한 형식 시스템에 의해 모델링될 수 있는 무작위 과정일 뿐이라고 믿습니다.

사실, 일관성 없는 시스템은 대부분의 경우 진정한 결과로 수렴할 수 있습니다. 내부 모순이 즉시 시스템을 지배하고 파괴할 필요는 전혀 없습니다. 모순을 최소화하는 시스템이 있을 수 있습니다. 그리고 추상적인 컴퓨터에서 실행될 때에도 비결정적 상태로 유지되고 불완전하고 일관성이 없지만 대부분의 경우 그럴듯한 결과를 생성합니다. 왜 펜로즈는 모순적인 시스템이 항상 모순에 의해 파괴될 것이라고 결정했는가? 펜로즈는 이것에 대해 침묵합니다 ...

뿐만 아니라. 이전 부분에서 보았듯이 컴퓨터와 두뇌 모두에서 우리 세계의 프로세스는 모두 본질적으로 모호하고 모순적입니다. 그러나 대부분의 경우 그들은 정확한 결과. 이는 이러한 프로세스가 유사한 계산의 다중 반복 또는 많은 수의 유사한 요소로 구성되어 대부분의 경우 이러한 반복 또는 요소의 조합이 안정적이고 정확한 결과를 생성한다는 사실 때문입니다. 물론 이것은 작은 내부 모순이 자라 전체 시스템을 파괴할 가능성이 매우 적습니다. 그러나 대부분의 경우 시스템이 조화를 이루는 것처럼 보이고 요소가 서로 작용하여 내부 모순을 최소화합니다. 우리 세계의 모든 프로세스가 고도로 조화를 이루는 것은 아니지만 그러한 프로세스가 있으며 컴퓨터와 뇌에서 일어나는 일은 그들에 속합니다. 우리 세계에서 그러한 조화는 어디에서 오는가? 다음 부품. 또한 우리의 세계관에서, 우리의 지적 활동에서, 우리가 전 세계적으로 틀리고, 우리의 판단에 작은 웜홀이 있어 우주에 대한 우리의 전체 생각을 완전히 뒤집을 수 있는 작은 기회도 있습니다. 그러나 다음 섹션에서 더 자세히 설명합니다.

처음에 인간의 사고는 그러한 과정만을 기반으로 합니다. 긴 논리적 사슬도 없고 명확한 규칙도 없습니다. 대신 긴 처리 주기가 없는 짧은 상황-응답 체인이 있습니다. 이러한 체인의 요소에는 많은 수의 입력이 있으며 요소 내부에서 입력 데이터는 여러 병렬로 분할되어 출력에서 ​​명확한 솔루션을 제공하는 퍼지 경로가 서로 복제됩니다. 우리는 그러한 요소를 짧고 광범위한 그럴듯한 규칙이라고 불렀습니다. 이러한 규칙은 논리적 추론을 다루지 않으며 이미 "기억"합니다. 턴키 솔루션그들에게 알려진 상황. 이러한 규칙을 학습하는 메커니즘도 명확한 논리적 결론과 거리가 멀고 이전 부분에서 설명했습니다.

이러한 프로세스는 현실 세계와 상호 작용하는 데는 좋지만 형식적 논리는 어렵습니다. 그럼에도 불구하고 인간의 지성은 형식적 논리의 방식으로 작동할 수 있고 컴퓨터 계산을 에뮬레이트할 수 있습니다. 그럴 수도 있지만 훨씬 더 "무거운" 프로세스를 희생해야 합니다. 간단한 논리 회로, 간단한 프로그램의 계산을 실행하기 위해 뇌에는 무수히 많은 짧은 퍼지 규칙이 관련되어 있으며, 이 규칙의 조합은 엄격한 논리 작업과 유사한 결과를 제공합니다. 그리고 이러한 규칙은 형식 논리를 위한 것이 아니기 때문에 형식 논리를 모방하는 데 관련된 규칙의 수는 실제 세계와 상호 작용하는 것보다 훨씬 더 많습니다. 따라서 다른 동물은 논리적 추론을 할 수 없으며 정교한 인간 두뇌가 필요합니다. 다른 동물들이 일상적인 일을 패스로 해결하지만 컴퓨터는 그것을 할 수 없습니다.

그러나 이러한 "무거운" 프로세스에는 이점이 있습니다. 그것은 두뇌가 새로운 논리적 구조와 컴퓨터 프로그램을 생성할 수 있다는 사실에 있습니다. 높은 학위그럴듯하지만 간단하지만 효과적인 알고리즘은 그 일을 무의미하게만 할 수 있습니다. 파생 구조의 복잡성은 처음에 뇌에 관련된 과정의 정도보다 훨씬 적습니다. 모순된 지적 과정이 진정한 논리적 구성을 만들어내는 것은 모순을 해결하는 복잡성의 차이입니다. 이러한 복잡성의 차이를 고려하지 않으면 이러한 진정한 구성이 어디에서 왔는지 이해할 방법이 없습니다.

복잡한 논리적 구성이 필요한 작업은 문자 그대로 "과학적 찌르기" 방법으로 해결합니다. 즉, 가장 간단한 옵션을 생각해내고, 두뇌에서 계산을 실행하고, 잘못된 순간을 보고, 다음(반드시 올바른 옵션은 아님)을 생각해내고, 계산을 다시 에뮬레이트하는 등의 작업을 수행합니다. 좋은 훈련을 받으면 그러한 구조는 의식의 참여를 필요로하지 않는 빠른 자동 행동의 범주에 들어가고 (그러나 그럼에도 불구하고 복잡성은 여전히 ​​큽니다) 전형적인 상황이 기억되고 ~인 것 같다뇌는 (공식 논리에 따르면) 정상적인 컴퓨터처럼 작동하지만 전혀 그렇지 않습니다.

그것은 또한 두뇌가 오랫동안 "코킹"되어 어떤 작업에 "가속"할 때 발생합니다. 초기 데이터의 책갈피, 실패한 시도, 모호한 예감 및 진실이 근처 어딘가에 있다는 갈망이 있습니다. 그리고 쾅 하고 통찰이 번쩍이면 모든 것이 제자리에 돌아가고 새로운 진실이 탄생합니다. 이 진리는 즉시 태어 났으며 더 높은 영역에서 온 것처럼 보일 수 있습니다. 그러나 실제로 효과는 동일합니다. 통찰력의 섬광은 관련되고, 변경되고 무수한 짧고 그럴듯한 규칙을 생성하고 어떻게든 결합하고 조화시키려는 길고 힘든 작업이 선행되었습니다. 실패. 그리고 이제 이러한 모든 규칙이 이미 서로 조화롭게 결합되어 하나의 조화로운 과정으로 병합되고 모두 함께 새로운 진리를 제시하는 순간이 옵니다.

이러한 원칙을 따르는 인공 지능은 기존 컴퓨터에서 잘 프로그래밍될 수 있습니다. 당연히 이 프로그램은 초기에 비결정론과 내부 모순의 존재를 목표로 할 것입니다. 기존 컴퓨터 프로그램은 비록 비결정적이고 일관성이 없지만 현대 프로그램불확실성과 모순을 줄이는 것을 목표로 합니다. 물론 인공 지능이 더 효율적인 아키텍처를 사용하는 것이 더 좋습니다. 많은 수의병렬 및 상호 작용 프로세스. 예를 들어, 양자 또는 광학. 단일 프로세서 전자 컴퓨터도 지능을 위해 프로그래밍할 수 있지만 아마도 성능이 부족할 것입니다.

"무거운" 프로세스와 조화에 대해서는 나중에 자세히 설명하고 이제 인공 지능 설계를 시작하겠습니다.

지능의 빌딩 블록

이 분야에서 우리가 이미 생각해 낸 것과 누락된 것을 간단히 회상하는 것으로 시작하겠습니다. 이 모든 것은 이전 부분에 자세히 설명되어 있습니다. 우리는 그것이 왜 그렇지 않은지 이해하기 위해 이것을 상기시킵니다. 결국 인텔리전스 알고리즘 자체는 그렇게 복잡하지 않으며 그 중 가장 중요한 것은 원칙입니다. 이동 방향과 예상 결과를 이해해야 합니다.

프로그래밍 언어들. 절차와 술어가 있습니다. 절차적 언어에서 프로그램은 조건부 점프가 있을 수 있는 엄격한 명령 시퀀스로 작성됩니다.

술어 언어에는 각각 고유한 범위가 있는 일련의 독립적인 규칙이 있습니다. 술어 언어의 집행자는 현재 상황에 대한 모든 규칙을 확인하고 적용합니다. 올바른 규칙, 상황(내부 상태)을 변경하여 규칙에서 긴 논리적 체인을 구축할 수 있습니다. 당연히 이것은 절차적 프로그램의 실행보다 수행자에게 더 어렵습니다.

절차적 언어는 알고리즘이 명확하게 알려져 있고 빠르고 효과적인 구현. 술어 언어는 인간의 지식, 논리 규칙을 저장한 다음 지식에 대한 결론을 도출해야 하는 경우에 좋습니다(예: 다양한 입력 상황 평가). 전체 프로그램을 다시 작성하지 않고도 새로운 지식을 추가하는 것이 편리합니다. 새로운 지식을 도입한 후 전체 지식 기반을 일관된 상태로 만드는 수정도 있습니다. 술어(예: Prolog)는 한동안 인공 지능의 미래로 여겨져 왔습니다.

그러나 사실은 절차 언어와 술어 언어가 서로 상호 표현되고 알고리즘 고유의 동일한 문제가 있다는 것입니다(공식 시스템, 위와 아래 참조).

첫째, 우리는 중지의 문제에 직면해 있습니다. 알고리즘은 솔루션을 찾기 위해 영원히 방황할 수 있습니다. 비록 그것이 근처에 있을 수 있지만, 이웃 지점에 있을 수 있습니다. 그러나 알고리즘은 완전하고 일관된 형식 시스템에 해당합니다. 그러나 우리에게는 의미가 없습니다(지금까지 우리는 유한한 시간에 영원한 계산을 할 수 없다고 믿습니다). "긴"가지 가지 치기를하면 알고리즘이 더 실용적이되지만 완전성과 일관성을 잃어 버리고 사실이 아니지만 그럴듯 해집니다. 그리고 여기서 우리는 잘못된 결정의 확률이 약간 확장된다는 사실에 대해 이야기하는 것이 아니라 알고리즘이 근본적으로 잘못된 결정을 내릴 수 있다는 사실에 대해 이야기하고 있습니다.

둘째, 논리 단위를 구성하는 술어 규칙이 너무 "협소"합니다. 자연 지능에서 논리 단위는 명령더 많은 입력 조건과 이러한 입력은 퍼지 기준에 따라 처리됩니다. 더욱이, 그러한 표현으로 지식은 "번짐"되고 명확성과 형식주의를 잃습니다.

기존의 퍼지 논리(과학에 그런 부분이 있음)는 술어에서 사용하기에 적합하지 않기 때문에 그 이유가 있습니다. 어떤 퍼지도 논리적 추론에서 또 다른 퍼지와 만날 때 많은 대안, 다른 논리적 사슬을 생성할 수 있습니다. 또한 이러한 옵션은 눈사태처럼 쉽게 성장할 수 있습니다. 내가 아는 한 기존 퍼지 논리는 체인의 병렬화나 역결합을 다루지 않습니다. 모든 퍼지 논리는 동일한 논리 표현식으로 작동하지만 논리 0과 1 대신 0에서 1까지의 실수 범위와 이 범위의 숫자를 결합하는 산술 연산을 사용합니다.

"복잡한" 논리의 변형이 있는데, 함축이 반전될 때 불확정성이 발생하며, 이는 가상 단위와 같은 것으로 표현되고 추가 계산에 참여하며 병렬화 및 체인 병합 가능성이 있습니다. 그러나 이 주제는 추가 공개가 필요합니다.

셋째, 사람이 없을 때 다른 알고리즘을 훈련(생성)할 수 있는 알고리즘이 없지만 훈련 상황의 집합(정확한 입력 및 출력 값 쌍의 대표적인 집합)이 있는 경우입니다.

패턴 인식 시스템. 우리의 인공 지능을 위한 논리 단위의 역할에 잘 맞습니다. 그들은 입력 상황을 잘 분류하고 출력에 대한 솔루션을 발표할 수 있습니다. 사실, 이러한 시스템에는 내부 메모리(상태)와 이 상태의 변환이 없기 때문에 "자극-반응" 반사를 나타내는 장기 처리가 필요하지 않은 경우에만 해당됩니다. 그러나 분류 인식기는 완벽하게 대처합니다. 복잡한 이미지도 처리할 수 있습니다(예: 얼굴 이미지에서 사람 인식). 패턴 인식 시스템을 훈련하는 방법은 효율적이고 잘 알려져 있습니다. 알려진 예제 세트에 대해 훈련된 인식기는 숨겨진 패턴을 캡처하고 경험을 알 수 없는 예제로 질적으로 일반화할 수 있습니다.

학습 원리. 원하는(기준) 결과와 지능형 시스템 운영의 실제 결과를 알면 이 시스템의 오류를 계산하고 시스템이 올바른 방향으로 작동하도록 수정할 수 있습니다.

수정(훈련) 방법은 정확하고(로컬이라고도 함) 글로벌합니다. 로컬 방법은 시스템 전체에서 오류를 계산할 수 있으므로 빠르고 효율적입니다. 전역 메서드는 이를 수행할 수 없으며 전체 시스템의 매개변수를 임의로 변경하고 변경 사항이 시스템에 얼마나 성공적으로 영향을 미치는지 확인하고 이를 기반으로 이 변경 사항을 저장할지 여부를 결정합니다.

Gradient descent 방법은 방향이 오류에 대해 계산될 수 있고 시스템 전체에서 반대 방향으로 입력에서 전파될 때 로컬 방법을 나타냅니다. 이러한 방법은 "유일하게" 그럴듯하지만 실제로 예를 들어 다층 퍼셉트론(종종 신경망이라고 함)을 훈련하는 경우에 좋은 결과를 제공합니다. 그러나 오류의 구조와 수정 방법을 알 수 없기 때문에 항상 적용 가능한 것은 아닙니다(다른 로컬 방법도 마찬가지).

그러나 우리는 글로벌 학습 방법, 유전 알고리즘 및 어닐링 시뮬레이션을 가지고 있습니다. 그것들은 잡식성이지만 컴퓨팅 리소스에 대해서는 매우 탐욕스럽습니다. 오류를 수정하는 방법이 거의 알려지지 않은 경우 작동할 수 있습니다. 유전 알고리즘은 특히 해결하려는 문제의 구조에 대해 알고 있는 경우 더 효율적입니다.

규모 원리. 유사한 과정을 여러 번 반복하거나 많은 수의 유사한 요소를 결합하여 매우 안정적인(또는 매우 그럴듯한) 결과를 얻을 수 있음을 의미합니다. 유사한 요소/프로세스는 평균적으로 유사하다는 의미가 아니라 요소가 서로 모순되고 경쟁할 수 있으며 불안정할 수 있지만 결국에는 여전히 높은 수준의 그럴듯한 솔루션으로 결합(조화)된다는 의미입니다. 예를 들어, 컴퓨터의 논리회로에서 모든 소립자는 불안정하지만 반감기가 매우 길거나 논리소자의 입자수가 매우 많아 개별 입자의 붕괴가 실질적으로 일어나지 않는다. 논리 회로의 고장을 일으킵니다. 또 다른 예로, 인공 신경망에서 별도의 신경 연결은 의사 결정에 거의 영향을 미치지 않고 연결 자체가 모순될 수 있지만 결국 신경망은 대부분 올바른 결정을 내립니다.

요약해보자. 우리는 복잡한 추론과 내부 상태 처리에 적합한 술어 언어를 가지고 있습니다. 술어 언어의 논리 단위로 사용할 수 있는 패턴 인식 시스템이 있습니다. 새로운 알고리즘을 자동으로 생성(훈련)하기를 희망하는 잡식 학습 방법이 있습니다. 완전성과 일관성이 상실되면 인공 지능 결정의 가능성을 높게 유지할 수 있는 규모의 원칙이 있습니다.

지능 알고리즘

유전자 알고리즘의 본질을 간단히 상기해 보겠습니다. 무작위 검색과 같은 방법이 있습니다. 무작위 솔루션이 생성되고 평가된 다음 무작위로 수정됩니다. 결과가 더 좋으면 결정이 기억됩니다. 그런 다음 사이클이 반복됩니다. 이 방법은 "과학에 따라" 솔루션을 계산하는 방법이 명확하지 않을 때 사용됩니다. 그것은 매우 긴 것으로 밝혀졌습니다. 그리고 많은 수를 병렬로 시작하면 다양한 솔루션? 성공적으로 진행 중인 솔루션(솔루션 품질이 시간이 지남에 따라 우수하거나 향상되거나 "이웃"에 비해 개선됨)을 위해 복제 인스턴스를 만들고 교활하게 이러한 인스턴스를 변경합니다(무작위). 나머지 배경에 대해 나쁘게 보이거나 시간이 지남에 따라 솔루션의 품질이 향상되지 않는 솔루션의 경우 해당 인스턴스를 점점 더 무작위로 변경하거나 심지어 삭제하고 그 자리에 새로 생성된 무작위를 넣습니다. 솔루션. 당연히 잘못된 결정은 전파될 가능성이 적습니다. 하나의 작업이 더 있습니다(무작위로 사용됨). 조각이 두 개의 다른 솔루션에서 잘려지고 이 두 조각이 함께 새 솔루션으로 접착됩니다. 크로스오버라고 합니다. 솔루션이 좋을수록 교차할 가능성이 높아집니다. 결과적으로 다음을 갖춘 솔루션을 얻기 위해 점프할 수 있습니다. 최고의 결과양쪽 부모보다. 그러나 반대의 경우도 발생할 수 있습니다. 솔루션이 더 나은 것으로 판명되면 미래에 증가하고 더 나빠지면 그러한 솔루션이 다음과 같이 증가합니다. 확실히제거됩니다. 이러한 탐색은 해의 구조를 알고, 해를 비트 단위로 파쇄하지 않고 이 구조를 고려하여 랜덤 변경(돌연변이) 및 교차 연산을 적용할 때 가장 효과적입니다.

솔루션이 병렬로 수행되는 것이 아니라 지속적으로 서로 비교되고 교환된다는 사실 때문에 이러한 검색은 임의 검색에 비해 성능이 매우 뛰어오르고 가장 어려운 작업을 분쇄할 수 있습니다. 일반적인 무작위 솔루션은 평균적으로 흥미로운 것을 나타내지 않으며 효율성이 매우 낮습니다. 그러나 일련의 솔루션이 서로 상호 작용하기 시작하자마자 비정상적인 결과(좋은 솔루션)가 빠르게 나타나고 진행됩니다. 이것은 Penrose가 평균적으로 혼돈 과정을 연구하고 전형적인 경우를 연구하도록 조언하는 방식이며, 전형적인 경우를 제외하고는 아무것도 생성할 수 없음을 강조하며 물론 불공정합니다. 이러한 탐색은 일반적인 조화 과정 중 하나인 규모의 원리를 보여줍니다.

이것이 바로 "과학에 따르면" 올바른 해법을 찾는 방법조차 알려지지 않은 상황에서 다양한 영역에서 효과적인 해법을 찾을 수 있는 유전자 알고리즘이라고 불리는 것이다. 또는 자동 작성 프로그램의 경우와 같이 "과학적" 방법이 전혀 없습니다. 유전 알고리즘의 효과는 주로 지구상의 생명체(그리고 그 다음에는 마음)가 그러한 원칙에 따라 정확하게 나타났다는 사실에 의해 입증됩니다. 이러한 조화 프로세스가 가능한 이유는 다음 섹션의 주제입니다.

인공 지능-유전자 프로그래밍에는 그러한 방향이 있습니다. 각 솔루션은 매개변수 집합이 아니라 절차적 프로그래밍 언어로 작성된 전체 프로그램입니다. 모든 루프, 조건부 전환 및 변수의 내부 상태. 따라서 결정의 결과는 이 프로그램을 실행한 결과입니다. 프로그램을 만들기 위해 유전자 알고리즘이 사용되었으며 무작위로 생성된 많은 프로그램에서 다음을 수행하는 프로그램을 만들었습니다. 가장 좋은 방법이 문제를 해결합니다. 내가 본 기사에서 작업은 자동차의 핸들을 제어하는 ​​것이 었습니다. 저것들. 결정의 결과는 입력에 대한 유일한 응답이 아니라 시간이 지남에 따라 확장된 프로세스입니다. 유전자 알고리즘이 성공하여 핸들을 올바르게 제어하는 ​​프로그램을 만들었습니다. 작업은 그다지 복잡하지 않으며 신경망에서 비슷한 작업을 수행합니다(아직 내부 상태가 있고 상태와 네트워크의 상호 작용에 대한 규칙은 사람이 작성하지만). 그러나 내부 상태, 다른 주기 및 분기가 있는 프로그램이 자동으로 생성되었음을 나타냅니다.

불행히도 이 주제에 대한 상황을 더 이상 추적하지 않았으며 더 이상 말할 수 없습니다. 원하는 사람들은 "유전자 프로그래밍"이라는 문구를 검색할 수 있습니다. 따라서 우리는 연구 된 것의 한계를 넘어 가정의 영역으로 들어갑니다. 이러한 가정 중 일부는 이미 알려져 있으며 저는 자전거를 발명하고 있습니다. 하지만 여전히 흥미롭습니다. :)

유전 알고리즘을 사용하여 얻은 프로그램이 어떤 속성을 가지고 있는지 봅시다. 그러한 프로그램은 무한(또는 매우 긴) 루프를 가질 수 있으므로 적합성 평가는 반환하지 않고 매우 오랫동안 실행되는 프로그램을 폐기해야 합니다. 가시적인 결과. 일반적으로 이동은 정확하지만 불행히도 잠재적으로 흥미로운 긴 논리적 사슬을 버립니다(다른 방법을 고려할 것입니다). 또한 프로그램의 분기를 넘어갈 때 무심코 파쇄되어 종종 의미 없는 코드를 생성합니다. 그리고 간단한 작업의 경우 이것이 그러한 문제가 아니라면 더 복잡한 작업의 경우 가장 작은 변경이 프로그램의 성능을 완전히 망칠 수 있고 아마도 거의 의미가 없기 때문에 많은 수의 부적절한 솔루션이 나타날 것입니다. 결국. 또는 프로그램에는 올바른 솔루션에서 상상할 수 없는 방식으로 서로 결합되는 많은 수의 중복 분기인 "정크"가 있습니다. 이 "쓰레기"는 진화 과정에서 살아남는 법을 배우기 위해 변화하므로 프로그램을 치명적으로 망가뜨리지 않도록 변경합니다. 그러나 어쨌든 우리는 사람이 작성하는 것과 동일한 명확한 프로그램이 될 "얇은"논리적 사슬이라는 아이디어에 작별 인사를해야합니다. 프로그램 자동 작성의 결과로 발생하는 일은 그러한 사슬과 거리가 멉니다. 물론 이 모순되는 힙을 명확한 알고리즘으로 최소화할 수 있는 데이터 마이닝 알고리즘이 나타날 것이지만, 이 명확한 알고리즘은 자동 모드, "번짐" 보기로 다시 되돌려야 합니다(또는 추가 학습 과정에서 번짐이 자체적으로 발생함). 그리고 데이터 마이닝의 도움으로 뽑아낸 알고리즘이 원래의 "번짐" 버전보다 더 좁은 "전망"을 가질 것이라는 의혹이 있습니다. 패턴 인식에 대한 이전 부분에서 유사한 현상이 설명되었습니다.

우리가 기억하는 바와 같이 술어 언어는 프로그램의 엄격한 프레임워크로 구성되지 않고 적절한 상황(조건)이 발생할 때 자동으로 작동하는 독립적인 규칙으로 구성되어 있기 때문에 변경에 더 유연하고 인간의 지식을 기록하는 데 적합합니다. 작업이 솔루션의 구조를 고려하면 유전 알고리즘이 더 효율적으로 작동합니다. 절차적 형식으로 작성하면 유전자 알고리즘이 프로그램을 무의식적으로 분쇄하여 많은 작동 불가능한 옵션을 생성합니다. 따라서 우리는 술어 형식으로 프로그램을 작성하고 이러한 구조를 고려하도록 유전 알고리즘을 조정합니다. 즉, 다른 솔루션 프로그램은 비트 조각이 아니라 완전히 독립적인 규칙을 교환할 수 있습니다. 임의 변경은 규칙 수준에서 작동합니다. 그 이상으로, 하나의 프로그램 내에서 순서에 관계없이 다른 수의 규칙을 가질 수 있습니다. 그리고 이러한 규칙은 매우 친구처럼다른 한편으로는 완전히 다릅니다. 프로그램 자체뿐만 아니라 한 프로그램 내의 규칙도 곱하고 교차할 수 있습니다. 그리고 모든 것은 프로그램이 실행될 때 수행자가 프로그램의 분기를 어리석게 따르지 않고(절차적 언어에서처럼) 현재 상황에 따라 규칙을 선택하기 때문입니다(각각 규칙은 상황을 바꿉니다).

그러나 가장 흥미로운 것은 모든 프로그램에 공통된 규칙 은행을 만드는 것입니다. 이 경우 프로그램은 일반 은행에서 선호하는 규칙에 대한 데이터이며 선호하는 응용 프로그램 순서에 대한 정보일 수 있습니다. 이 경우 성과기준은 프로그램뿐만 아니라 규칙에도 적용될 수 있다. 결국, 각 규칙은 여러 다른 프로그램에 기여하며 이러한 프로그램 중 성공한 프로그램과 그렇지 않은 프로그램을 계산할 수 있습니다. 그리고 이를 기반으로 규칙의 효과에 대한 결론을 도출하고 이에 따라 프로그램뿐만 아니라 규칙도 발전시킵니다(예: 곱하기, 교차, 규칙 자체를 무작위로 변경). 효율성 향상은 유사한 규칙이 더 이상 다른 프로그램에서 복제되지 않고 각 프로그램이 더 넓은 규칙 은행에 액세스할 수 있다는 사실에서 비롯됩니다. 그러나 가장 중요한 것은 규칙이 다른 프로그램에서 교차 사용과 함께 공동으로 평가된다는 것입니다. 이는 (아마도) 평가의 품질과 규칙의 발전을 극적으로 향상시킵니다.

그래서 우리는 인공 지능의 가장 간단한 버전을 얻었습니다. 다른 게임, 포함 컴퓨터, 전문가 시스템 및 프로세스 제어 시스템. 이것은 Markov 모델 대신 내부 메모리를 사용하여 블랙박스 프로세스를 모델링하는 데에도 적합합니다(입력 및 출력에 있는 것을 볼 수 있는 프로세스이지만 내부 상태 및 프로세스는 이해할 수 없습니다. 우리 생각에는 블랙박스) ).

여기에서 유전 알고리즘이 프로그램의 일부를 독립적인 서브루틴으로 분리하고 프로그램을 변경할 때 구조를 고려할 수 있도록 논리적 제안이 발생할 수 있습니다. 절차적 표기법의 경우 이는 효율성을 높일 수 있지만 여전히 고유한 단점을 제거하지는 못합니다. 왜냐하면 여전히 엄격한 명령 시퀀스, 조건문 및 루프가 필요하기 때문에 우발적인 변경이 중단될 수 있기 때문입니다. 술어 표기법에서는 그러한 절차가 전혀 존재하지 않습니다. 그러나 다른 한편으로는 전체 상황을 일련의 계층적 상황과 일련의 상황으로 분할하여 고유한 규칙 집합만 각 하위 상황을 처리하도록 할 수 있습니다. 단기적으로 이러한 분할은 유전 알고리즘의 효율성을 높여야 합니다. 그러나 사실은 실제 지성에서 규칙의 상호 작용이 더 복잡하며 그러한 구분은 특징적이면서 동시에 특징적이지 않습니다. 따라서 상황의 이러한 붕괴를 부과함으로써 단기적으로는 이익을 얻을 수 있지만 미래에는 방해가 될 것입니다. 이에 대한 자세한 내용은 다음과 같습니다.

인공 지능 버전 2.0

술어 언어(예: Prolog)에는 프로그램에 일련의 단계가 없습니다. 규칙 집합만 있으며 이러한 규칙의 실행 순서는 처음에 어떤 식으로든 설정되지 않습니다.

다음과 같이 보입니다.
규칙 n: 조건인 경우 결과;
규칙 m: 조건이면 결과;
등등.

조건은 상호 재귀 적용을 포함하여 간단한 표현식과 기타 규칙을 모두 포함하여 매우 복잡할 수 있습니다. 규칙 실행의 결과는 최종 상황과 다른 규칙(및 자체도)의 적용 가능성을 확인하기 위한 조건의 일부를 모두 나타낼 수 있는 복잡한 조건이기도 합니다. 이러한 결과는 명확하고 모호하지 않습니다.

술어 프로그램을 실행하는 동안 글로벌 상황이 없습니다. 인터프리터가 적절한 조건으로 첫 번째 규칙을 검색하는 초기 조건이 있으며, 이 규칙의 결과가 초기 조건에 추가됩니다. 새 조건에 적합한 규칙 검색이 반복됩니다. 결과는 최종 결과의 달성을 나타내는 규칙으로 이어질 수 있는 추론 체인입니다. 인터프리터가 사용 가능한 모든 체인을 소진하면 다음 루프를 찾는 각 루프에 대해 롤백이 시작됩니다. 적절한 규칙새로운 체인 구축.

다시 말하지만, 상태(상황)는 초기 조건에 적용된 규칙의 사슬을 더한 것입니다. 롤백할 때 적용된 규칙의 체인이 그에 따라 변경됩니다.

규칙을 사슬로 연결할 때 해석자는 끝없는 탐색에 빠질 수 있지만 솔루션은 근처에 있을 수 있습니다. 따라서 인터프리터가 "똑똑한" 경우 잠재적인 루핑 위치를 인식하거나 여러 결정 체인을 병렬로 이끌 수 있으며 최종 상황으로 더 빨리 이어질 것을 선택합니다. 반면에 규칙 집합을 작성하는 사람은 루프 가능성을 최소화하도록 주의해야 합니다.

예를 들어 선교사와 식인종에 관한 작업인 경우 선교사와 식인종 무리가 같은 배를 타고 반대편으로 이동해야 합니다. 보트는 두 사람만 탈 수 있습니다. 해안에 선교사보다 식인종이 더 많으면 선교사가 먹힐 것입니다. 술어 언어로 문제를 해결할 때 선교사가 먹지 않도록 (재귀 적으로 포함) 허용 가능한 상황과 보트의 허용 가능한 움직임 (보트에는 항상 한두 사람이 있어야 함)이 작성됩니다. 또한, 통역사 자체는 전체 군중이 반대편에 있는 상황이 될 때까지 실현 가능한 솔루션의 트리를 구축합니다. 이 경우의 일련의 규칙은 선교사와 식인종을 강 건너로 수송하는 순서를 따릅니다.

규칙은 솔루션을 찾는 과정에서 서로 명확하게 연결되어 있기 때문에 술어 언어에서는 절차 언어에서 절차로 그룹화하는 것과 유사한 규칙 수준에서 적용 계층과 순서가 이미 설정되어 있습니다. 그러나 규칙 간의 사슬을 덜 명확하게 만들자 마자 이 그룹화는 손실됩니다. 그리고 그것이 정확히 어떻게 새롭게 일어날 것인가(또는 그것이 형성되도록 돕는 방법)는 새로운 질문입니다.

술어 언어에는 루프, 조건부 점프, 하드 코딩된 동작 시퀀스가 ​​없습니다. 수행자는 현재 상황에 대해 다음 단계를 선택하기 때문에 항상 무엇을 해야 하는지 "알고 있습니다". 수행자는 다음 단계에서 상황이 얼마나 예기치 않게 변경되더라도 변경된 상황을 평가하고 새 단계를 선택하기 때문에 한 단계만 선택합니다. 이것은 또한 공연자가 프로그램의 일부가 실패하거나 잘못된 결정을 내린 경우 자신을 구출하는 데 도움이 됩니다. 잘못된 방향으로 치명적으로 떨어지는 대신 수행자는 상황을 재평가할 것이며 아마도 다음 단계는 이 상황을 개선할 것입니다.

물론 관련된 프로세스는 프로그램의 절차적 작성보다 훨씬 더 많은 계산을 필요로 합니다. 그리고 술어 언어의 원래 형태에서 모든 것이 이전 단락에서 설명한 것처럼 매끄럽지는 않습니다.

술어 언어의 단점은 규칙의 범위가 매우 좁고 너무 긴 사슬로 정렬된다는 것입니다. 반대로 지능에서는 논리적 단위가 퍼지 및 비선형 기준에 따라 매우 광범위한 입력 조건을 평가하는 짧은 추론 체인이 우선합니다.

따라서 인공 지능 구축의 다음 단계는 좁고 명확한 규칙을 퍼지 및 넓은 규칙으로 대체하고 추론 체인을 더 짧게 만드는 것입니다.

먼저 프로그램의 전역 상태(정규 숫자 배열)를 만들어 보겠습니다. 이 배열의 일부는 입력 데이터입니다. 외부에서 정기적으로 업데이트됩니다. 프로그램이 변경하도록 허용할지 여부는 원칙의 문제가 아니며 중요한 것은 정기적으로 업데이트된다는 것입니다. 이 배열의 일부는 프로그램의 내부 상태입니다. 나머지는 출력입니다. 내부 셀과 출력 셀은 출력 셀에서 솔루션을 읽는다는 점에서만 다릅니다. 입력과 출력은 항상 동일한 매개변수를 쓰거나 읽는 데 사용됩니다. 예를 들어, 입력 #1 - 속도, 입력 #2 - 연료 센서, 출력 #3 - 핸들 위치 변경, 출력 #4 - 속도 변경. 우리는 임의로 숫자를 할당하며, 프로그램 자체를 학습하는 과정에서 입력과 출력이 어디에 있는지 이해하는 방법을 배워야 합니다.

규칙의 기초로 예를 들어 다층 퍼셉트론(간단히 신경망이라고 함)을 살펴보겠습니다. 프로그램 내부의 이러한 신경망에 대한 훈련 알고리즘은 아직 우리에게 알려지지 않았습니다. 우리는 그러한 신경망을 많이 가질 것입니다. 그들은 함께 프로그램에 대한 일련의 규칙을 만들 것입니다. 각 신경망은 프로그램의 전체 전역 상태를 입력으로 받습니다(입력의 수는 상태 셀의 수와 같습니다). 신경망은 출력이 거의 없습니다. 각 출력은 또한 상태 셀 중 하나에 해당합니다. 각 반복에서 각 신경망의 출력에서 ​​발생한 일이 전역 상태에 추가됩니다(출력 값은 음수일 수 있음). 모든 네트워크는 현재 상태를 기반으로 동시에 폴링되며 전체 영향으로 새 상태가 생성됩니다.

각 네트워크에 대한 출력의 수와 바인딩은 처음에 무작위로 선택됩니다. 우리는 대부분의 경우 전역 상태 셀과 신경망의 입력/출력 간의 전환을 변경하지 않고 그대로 두는 방식으로 진화적 변화를 구성합니다. 그리고 작은 변화 확률로만 네트워크의 입력 또는 출력을 다른 셀로 재배열할 수 있습니다. 이것은 각 셀이 특정 매개변수(내부에 있더라도)라고 생각하는 동안 필요하므로 네트워크의 입력/출력을 익숙하지 않은 다른 매개변수로 전환하면 결과가 오히려 실패. 불행히도, 이 기동으로 우리는 다시 일부를 잃습니다. 흥미로운 속성실제 인텔리전스, 그러나 우리는 지금 효율성을 얻고 있습니다. 나중에 이러한 속성으로 돌아갑니다.

진화 과정에서 전역 상태 셀의 수도 변경될 수 있습니다. 그런 다음 모든 신경망이 그에 따라 조정됩니다. 세포가 복제되면 신경망의 해당 입력 및 출력이 복제됩니다. 셀이 제거되면 해당 입력/출력이 모든 네트워크에서 제거됩니다.

개별 신경망의 출력 수를 늘리거나 줄일 수 있는 진화적 변화도 있습니다.

이러한 신경망 세트로 구성된 프로그램은 정확히 어떻게 솔루션을 생성할까요? 보다 정확하게는, 다음 반복 후에 프로그램이 결정을 내렸음을 이해하고 입력 셀에서 이 결정을 읽는 방법은 무엇입니까? 이것은 실험이 필요한 흥미로운 질문이기도 합니다. 첫 번째 고려 사항은 다음과 같습니다. 출력 값이 안정화됩니다. 또는 답변이 준비되었음을 알리는 특수 출력이 있습니다. 이러한 출력은 진화 과정에서 자체 조정됩니다.

결정을 제거한 후에도 프로그램은 계속 작동해야 하며 대부분 내부 상태에서 시작해야 합니다. 프로그램이 특정 솔루션에서 안정화되었기 때문에 추가 작업을 진행하려면 어떻게 해야 합니까? 첫째, 결정이 제거된 후 입력 셀을 실제 데이터로 덮어씁니다(네트워크가 결정을 내리는 동안 입력 데이터가 많이 변경되지 않은 것으로 가정). 두 번째로, 반복 시작 시 큰 숫자를 배치할 특수 입력 셀을 가질 수 있습니다. 또한 이 숫자 자체를 변경하는 방법을 배우거나 외부에서 줄여 시간이 다 되었음을 네트워크에 알릴 수 있습니다. 일반적으로 실험을 위한 아이디어는 충분합니다.

이제 그 이유에 대한 설명입니다.

우선, 우리는 규칙 체인 구축을 포기하고 각 규칙이 작업 결과를 글로벌 상태에 쓰도록 강요했습니다. 이렇게 함으로써 우리는 긴 인출 체인을 구축하고 역롤백을 불가능하게 만들었지만 더 빠른 응답과 상황에 대한 광범위하고 모호한 평가를 얻었습니다. 각 옵션에 고유한 전역 상태가 있는 여러 옵션의 병렬 처리는 사라지지 않았습니다. 그러나 우리는 원래 술어 해석기에서처럼 넓은 분기를 가지고 있지 않습니다. 광범위한 퍼지 규칙에 따라 추론 체인을 분기하려고 하면 솔루션 구성의 초기 단계에서도 옵션의 수가 엄청나게 줄어들 것입니다.

결과적으로 술어에 대한 원래 출력과 유사한 것처럼 보이지만 완전히 다른 결과를 얻었습니다. 이것은 더 이상 복잡하고 명확한 결론을 구성 할 수 없지만 다른 한편으로 복잡하고 빠르게 변화하는 환경에서 행동 할 수 있으며 심지어 원본 버전이 할 수없는 그럴듯한 논리적 결론의 기초를 가지고 있습니다. 복잡하고 명확한 결론의 결론은 여전히 ​​​​우리에게 돌아올 것입니다. 뜻밖의 방법으로, 그러나 지금은 결과 지능이 그것 없이는 될 것입니다.

그러나 결과적으로 사람이 하는 방식과 유사한 방식으로 논리적 문제(예: 체스 게임)를 해결할 수 있습니다. 그러한 생각은 상황적이라고 할 수 있습니다. 긴 논리적 체인을 구축하는 것에서 시작하는 것이 아니라 현재 상황이 무엇인지, 이 상황을 어떻게 바꿀 것인지에 대한 평가에서 시작됩니다. 상황에는 외부 데이터와 내부 상태가 모두 포함되며 현재 시점에서 시스템이 "생각한" 것입니다. 앞으로 나아갈 방향에 대한 평가 및 결정 여러분현실에서 벗어난 후 긴 추론에 잠길 수 있는 절차적 알고리즘 및 추론과 반대되는 단계입니다. 따라서 이러한 프로그램에 대한 임의 변경은 절차적 녹음과 달리 성능에 치명적이지 않습니다. 이해할 수 없는 상황에 처하거나 실수를 해도 그러한 프로그램은 혼미에 빠지지 않고 알고리즘의 작은 부분이 아니라 전체 규칙 집합이 참여하기 때문에 무언가를 시도합니다. 상황에 대한 평가. 그리고 프로그램이 처음에 혼돈의 던지기를 한다 하더라도 조만간 친숙한 상황에 빠지고 올바른 방향으로 돌릴 수 있을 것입니다.

상황적 사고는 세 가지를 기반으로 합니다. 첫 번째는 상황을 친숙한 경우로 일반화하는 것입니다(패턴 인식 시스템에서와 같이). 예를 들어, 체스판에 있는 말들의 다양한 배열에서 사고 시스템은 공통점을 찾고, 상황을 평가하고, 말에 위협이 있는지, 손실 없이 공격할 기회가 있는지 여부를 판단할 수 있습니다. 보다 구체적인 상황 - 조합. 두 번째는 경험(긴 논리적 결론 없이 상황을 더 나은 방향으로 바꾸기 위해 적용되는 짧고 그럴듯한 규칙의 라이브러리)입니다. 상황에 대한 평가를 기반으로 조각을 이동하는 방법에 대한 대략적인 데이터와 같이 이러한 상황을 변경하기 위한 대안이 제안됩니다. 파서는 이 대략적인 데이터를 체스판에 있는 조각의 올바른 움직임으로 변환합니다(올바른 움직임을 찾을 수 없으면 다음 대안이 사용됨). 유사한 상황(및 그에 따른 솔루션)은 게임의 어느 단계에서나 발생할 수 있으며 다양한 이동에 대한 옵션을 길게 열거하지 않고도 즉시 솔루션을 얻을 수 있습니다. 예, 이러한 옵션은 "유일하게" 그럴듯하지만 실제 게임에서 얻은 많은 경험을 포함하고 있으며 새 게임에 상당히 적용할 수 있습니다. 또한 이러한 상황에는 게임이 앞으로 많은 움직임을 개발하는 방법에 대한 약간의 지식이 포함되지만 움직이는 조각 수준이 아니라 전술적 상황을 변경하는 수준(무승부를 달성하기 위해 균형을 유지하는 것과 같은 끝없는 주기가 포함될 수 있음)을 변경하는 수준에서 ) . 그럼에도 불구하고 손실로 이어진다면 도서관은 상황에 맞는 새로운 규칙으로 보완됩니다. 셋째, 이것은 몇 단계 앞서 가능한 솔루션에 대한 내부 점검입니다(즉, 무언가를 생각해낸 다음 이것이 상황을 얼마나 잘 변화시킬지 추정하고 몇 가지 대안 솔루션을 유지하지만 우리 시스템은 아직 이것을 할 수 없습니다. 하나의 옵션만 제공하지만 이에 대한 추가 정보가 있을 것입니다).

그건 그렇고, 신경망을 공부할 때 입력 데이터를 기반으로 작동하는 방법뿐만 아니라 내부 상태를 소화하고 복잡한 프로그램을 실행하도록 가르치는 방법에 대해 생각 했습니까? 나는 여기에 관심이 있었다. 사실, 오래 전에 나는 그러한 네트워크를 훈련시키는 방법에 대해 가치있는 것을 생각해 낸 적이 없습니다. 그러나 지금은 조금 다른 대답이 있습니다.

전체 상태를 업데이트할 수 있는 하나의 큰 신경망 대신 많은 신경망을 만든 이유는 무엇입니까? 사실은 유전 알고리즘의 효율적인 작동을 위해 일련의 독립적인 규칙을 갖는 것이 바람직하다는 것입니다. 각 규칙은 특정(우리의 이해에는 숨겨져 있지만) 작업에 대한 책임이 있습니다. 또한, 그러한 규칙은 프로그램 간에 교환될 수 있고, 다른 프로그램 세트로 만들어지고, 개별 규칙을 수정 및 복제할 수 있으며, 가장 성공적인(또는 미래의 라이브러리에서도) 규칙의 라이브러리를 형성할 수도 있습니다. 하나의 큰 신경망으로 이 작업을 수행하는 것은 어려울 것입니다. 또한 기존 신경망의 경우 네트워크 집합체가 기존 신경망보다 성능이 더 좋은 경향이 있습니다.

비슷한 이유로 각 신경망에는 적은 수의 출력만 있습니다. 저것들. 각 규칙은 자체적으로 작은 결정을 내리는 데 적합합니다. 그러나 동시에 각 네트워크는 상황에 대한 글로벌 비전을 갖고 있다는 기대와 함께 전체 주에서 입력을 받지만 동시에 특정 규칙의 범위와 관련이 없는 대부분의 경우에 응답하지 않습니다. . 각 네트워크는 진화 과정에서 이것을 배워야 합니다. 따라서 전역 상태에 영향을 미치는 경우에도 현재 상황에 적용되는 규칙이 정확히 작동합니다. 입력의 수도 제한되어야 할 수도 있습니다. 이 문제에 대해서는 아무 생각이 없습니다. 여기서는 실험만 도움이 될 것입니다.

결과적으로 훈련 후에는 일련의 신경망으로 구성된 프로그램을 얻어야 합니다. 프로그램은 입력 셀이 지정된 초기 상태에서 시작하며 나머지 셀은 0으로 설정될 수 있습니다(또는 작은 임의 값을 가짐). 반복할 때마다 전역 상태가 모든 네트워크의 입력에 제공되고 모든 네트워크의 작업 결과가 계산되고 모든 네트워크의 출력이 전역 상태에 즉시 추가됩니다. 다음 반복이 오고 있습니다. 예를 들어 출력 값이 안정화되었거나 솔루션이 준비되었음을 알리는 신호가 특수 출력에 도달했다는 사실을 통해 솔루션이 준비되었음을 이해할 수 있습니다. 그런 다음 출력 값을 읽고 새 입력 값을 로드하며 프로그램은 업데이트된 데이터로 계속 작업합니다.

이 프로그램은 유전자 알고리즘을 사용하여 자동으로 생성됩니다. 중요한 것은 우리가 받은 프로그램의 효과를 평가하기 위한 최소한 몇 가지 기준이 있다는 것입니다(즉, 한 프로그램이 다른 프로그램보다 우수함). 이것은 유전 알고리즘이 작동하기에 충분합니다. 실제 문제의 경우 일반적으로 그러한 기준이 있습니다. 또한 다양한 상황에 대해 좋은 것과 나쁜 것으로 간주되는 일련의 작업 예가 될 수도 있습니다(패턴 인식 시스템도 예를 통해 학습함). 알려진 예에서 배운 프로그램은 이미지 인식 시스템과 같은 미지의 예에 대한 경험을 일반화할 수 있습니다. 이러한 일반화는 질적인 성격을 띠고, 일련의 예에서 숨겨진 패턴을 포착하고, 예상치 못한(그러나 정확함)을 그릴 수 있습니다. 결론. 정확한 논리적 결론과 명확한 솔루션이 필요한 작업의 경우 이것은 더 어렵습니다. 예를 들어 체스를 두는 것과 같이 프로그램을 서로 싸우게 하는 옵션이 있을 수 있으며 더 잘하는 프로그램을 효과적인 것으로 인식하면 외부 평가가 필요하지 않습니다.

유전 알고리즘은 규칙 세트(신경망)와 프로그램 세트를 무작위로 생성합니다. 모든 규칙은 공유 저장소에 있습니다. 이러한 각 프로그램은 공통 저장소에서 가져온 고유한 특정 규칙 집합으로 구성됩니다. 규칙 자체는 저장소에 있으며 프로그램은 규칙만 참조합니다. 효율성을 평가하기 위해 모든 프로그램이 병렬로 실행됩니다(각각 고유한 상태와 일련의 입력 및 출력이 있음). 더 빠르고 효율적으로 작동하는 프로그램에 최고 점수가 부여됩니다. 오랫동안 생각하거나 전혀 결정을 내리지 않는 프로그램은 벌점을 받습니다.

의 나쁜 프로그램 더 가능성이변경되거나 완전히 제거되었습니다. 그 자리에는 새로 생성된 프로그램이나 기존 프로그램에서 복제된 프로그램이 있습니다. 프로그램 평가는 누적될 수 있습니다. 축적하여 프로그램이 발전할 수 있는 유예 기간을 제공합니다. 좋은 프로그램은 복제될 가능성이 더 큽니다. 나쁜 프로그램에서 좋은 프로그램으로 발전하는 프로그램이 있습니다.

충분히 좋은 해법에 도달한 후, 유전자 알고리즘의 작업의 결과로 최상의 프로그램이 선택되고, 앞으로 이 프로그램은 실제 문제에 사용됩니다.

프로그램은 어떤 진화적 변화를 겪을 수 있습니까? 저장소에서 규칙을 추가하거나 제거합니다. 다른 프로그램과의 교차, 즉 두 개의 프로그램이 선택되며, 이를 기반으로 한 프로그램의 규칙의 일부와 두 번째 프로그램의 규칙의 일부로 구성된 세 번째 프로그램이 작성됩니다. 교차할 때 프로그램에 추가, 제거 또는 작성되는 규칙은 무작위로 선택됩니다. 생각해 보면 더 의도적으로이 작업을 수행하는 방법이있을 수 있지만 특정 프로그램에서 규칙 참여의 효율성에 대한 평가가있을 수 있습니다.

규칙이 적용될 수 있는 진화적 변화(신경망). 이미 언급했듯이 이러한 변경 사항 중 하나는 모든 규칙에 영향을 미치는 내부 상태 셀 수의 변경입니다. 상태 셀의 수를 늘리거나 줄여야 하는 필요성은 프로그램의 역학, 상태가 얼마나 자주 변경되는지, 얼마나 서로 상관관계가 있는지, 출력 값에 얼마나 영향을 미치는지, 얼마나 효율적인지에 의해 어느 정도 추정될 수 있습니다. 프로그램의 인구는 일반적입니다. 다음 진화적 변화는 규칙 복제, 규칙의 무작위 변경입니다(즉, 어닐링에서와 같이 신경망의 "가중치 흔들기", 효율성이 낮을수록 흔들림이 더 강함). 규칙의 후속 변경과 함께 복제하면 프로그램 복제에 집착할 수 있습니다. 예를 들어, 원본 프로그램에는 원본 규칙에 대한 링크가 있고 복제된 프로그램에는 복제된 규칙에 대한 링크가 있습니다. 또는 소스 프로그램에 규칙의 복제본에 대한 링크가 추가로 있습니다. 두 개의 신경망에서 조각을 가져와서 세 번째 네트워크로 연결하면 규칙을 넘을 수 있습니다. 규칙(신경망)에서 출력의 수는 위에서 설명한 것처럼 무작위로 변경될 수 있으며 내부 연결의 수와 구조는 변경될 수 있습니다.

각 규칙에 대해 이 규칙이 포함된 프로그램의 성공 정도에 따라 효과를 계산할 수 있습니다. 또한 규칙이 프로그램에 포함될 수 있지만 비활성 상태이므로 프로그램 작동에 영향을 미치지 않는다는 사실을 고려할 수 있습니다. 이 평가를 기반으로 우리는 규칙 뱅크를 방향적으로 발전시킬 수 있습니다. 즉, 성공적인 규칙을 더 자주 곱하고 비효율적인 규칙을 제거하거나 변경할 가능성을 높일 수 있습니다. 가장 효과적인 규칙에 따라 프로그램을 만들 수도 있습니다. 또는 프로그램에 포함될 가능성이 더 높은 변경 과정에서 최고의 규칙. 은행은 다양한 범위의 규칙을 저장하지만 그럼에도 불구하고 공통 작업을 해결합니다.

그러나 가장 흥미로운 점은 각 규칙에 대해 효율성뿐만 아니라 오류도 계산할 수 있다는 것입니다! 즉, 주어진 입력 조건에서 이 규칙이 올바르게 작동해야 하는 방법을 이해합니다. 결국, 우리는 트리거 규칙(신경망)의 예를 가지고 있습니다. 좋은 프로그램(우리는 이것이 프로그램을 구성하는 규칙의 올바른 결정이라고 믿습니다) 및 잘못된 프로그램에서 작업의 예(이들은 프로그램을 구성하는 규칙의 잘못된 결정이라고 생각합니다). 따라서 각 신경망이 만들어낸 좋은 결정은 증폭하고 나쁜 결정은 최소화할 수 있습니다. 입력값과 출력값을 문제 없이 재현할 수 있으며, 이를 기반으로 훈련 샘플을 구축하여 오류 역전파 알고리즘으로 보낼 수 있습니다. 여기서 주요 문제는 훈련 샘플의 입력 및 출력에 있었던 시간 순서를 확장하는 것이며 여기에는 모호성이 있을 수 있습니다. 결국 우리는 올바른 네트워크의 모든 솔루션(입력-출력 쌍)이 이상적으로는 정확하고 잘못된 솔루션에서는 이상적으로 올바르다고 가정할 수 없습니다. 어쩌면 결승선에서 올바른 결정을 "지워 버린"완전히 다른 규칙의 잘못입니까? 결정의 전체 순서를 펼치는 데 관여하는 것은 희망이 없는 일입니다. 따라서 이러한 시간 순서를 기반으로 한 샘플의 형성에 대해 생각해야 합니다. 그리고 훈련 샘플을 구성할 때 많은 예제를 버리고 가장 명확한 예제만 남겨두더라도 계속 진행됩니다.

이제 우리가 무엇을 가지고 있는지 봅시다. 이제 우리는 실제 문제를 탐색하고, 다양한 상황에서 유연하게 행동하고, 오류에서 복구하고, 일종의 내부 논리를 갖고 상황을 예측/모델링할 수 있는 프로그램을 자동으로 작성하는 도구를 갖게 되었습니다. 그들이 할 수 없는 것은 미묘한 논리적 사슬을 개발하고 긴 추론을 하는 것입니다. 많은 작업에서 그러한 지능은 깊은 논리적 프로세스를 가진 것처럼 가장할 수 있지만 실제로는 훈련 중에 얻은 공백만 적용했습니다. 그러한 지능과 독립성만으로는 충분하지 않으며 여전히 많은 일을 해야 합니다. 그리고 하드웨어 부분에서 우리가 얻은 것은 자연이 만들어낸 것과 아주 유사하지 않습니다.

인공 지능 버전 3.0

이제 환경 에뮬레이터라는 것을 추가해 보겠습니다. 외부 환경을 에뮬레이트하기 위한 것과 예측하기 위한 것의 두 가지 유형이 필요합니다. 세 번째 종류도 있지만 나중에 자세히 설명합니다.

예측 모드의 에뮬레이터는 이전 상태의 이력과 제어 프로그램이 환경에 미치는 현재 영향을 알고 몇 단계 앞서 예상되는 환경 동작을 제공할 수 있어야 합니다. 이제 프로그램은 외부 환경에서 즉시 작동하지 않고 먼저 에뮬레이터에서 작동합니다. 그리고 에뮬레이터에서는 프로그램의 영향으로 환경이 올바른 방향으로 변경되었는지 여부를 예측할 수 있습니다. 따라서 유사한 방식으로 훈련된 프로그램의 여러 인스턴스를 가질 수 있지만 서로 다릅니다. 각각에 대해 실시간으로 자체 환경 에뮬레이터를 시작하십시오. 그리고 외부 환경에 대한 각 단계에서 최고 등급을 받을 프로그램의 임팩트를 에뮬레이터에 부여합니다. 또 다른 옵션은 프로그램 팀이 "과반수 투표"로 내릴 결정(반드시 최선은 아님)을 내리는 것입니다. 그런 다음 이 결정은 신뢰성으로 구별됩니다.

에뮬레이션 모드의 에뮬레이터는 예측과 유사하지만 실제 외부 환경이 없을 때 프로그램을 훈련하는 과정에서 사용됩니다. 이전 버전에서는 외부 환경에서 가져온 기성품 절단 예제를 가져왔습니다. 따라서 이러한 예 대신 전형적인 상황외부 환경. 결국에는 많은 예가 있을 수 있으며 이 획기적인 것보다 컴팩트한 에뮬레이터를 사용하는 것이 더 효율적입니다.

실제 센서에서 에뮬레이터를 훈련 모드로 전환하고 오랫동안 그대로 둘 수 있습니다. 논리적인 질문은 교육용 센서에 올바른 프로그램을 즉시 적용하지 않는 이유입니다. 여기에 몇 가지 답변이 있습니다. 먼저 프로그램의 다음 버전을 훈련하고 실제 장치를 구동해야 할 수도 있습니다. 둘째, 실제 센서에서는 프로그램이 올바르게 학습되었는지 여부를 실험하는 것이 불가능하거나 그러한 실험에 비용이 많이 들고 에뮬레이터가 예측 모드에서 작동할 수 있습니다.

또한, 에뮬레이터는 첫째로 환경의 행동에서 무작위 편차를 발행하고, 두 번째로 환경의 행동에서 다른 시간 시퀀스를 결합하도록 구성될 수 있습니다. 에뮬레이터는 외부 환경에서 훈련되기 때문에 그러한 조합은 그럴듯하게 "발명"될 것입니다. 이는 교육 프로그램에 대한 일련의 예를 확장합니다.

당연히 실시간으로 발생하는 모든 것을 다시 기록하고 프로그램의 자동 추가 교육에 사용할 수 있습니다.

에뮬레이터용 프로그램은 위에서 설명한 것과 동일한 기술을 사용하여 만들 수 있습니다.

외부 환경이 매우 복잡한 경우(체스 게임과 같이) 에뮬레이터는 제어 프로그램 자체에 매우 가까운 기술을 사용하여 구축됩니다. 학습할 때 프로그램이 서로 놀고 가장 강한 프로그램이 살아남는 지점까지. 예측 에뮬레이터는 최고의 움직임을 찾을 뿐만 아니라 상대방의 플레이 스타일에 적응하도록 사용자 지정할 수 있습니다. 따라서 인간과 놀 때 기계의 "두뇌"에서 최종 결정을 내리기 전에 많은 프로그램과 상대 에뮬레이터 사이의 전체 전투가 있을 것입니다.

따라서 외부 환경 에뮬레이터를 사용하여 실시간으로 프로그램 학습의 질과 의사결정의 질을 모두 향상시킵니다.

경쟁적인 의사 결정과 환경 에뮬레이터가 있는 자연 지능에 그러한 병렬성이 있습니까? 그렇게 생각하지만 그런 경우는 거의 없다 직접 형태. 자연 진화 과정에서 형성된 것은 확실히 더 복잡하고 더 효율적입니다. 그러나 여기서는 단순성과 가장 빠른 효과 달성을 위해 경쟁과 에뮬레이터를 인위적으로 도입했습니다.

환경 에뮬레이터와 경쟁력 있는 집단 솔루션을 도입한 후 우리 인공지능의 새로운 속성을 도입할 수 있습니다.

방황하는 배경 솔루션. 결정이 내려진 후 다음 단계를 반영하기 위해 모든 프로그램을 강제로 재구성할 필요는 없습니다. 과거 상황에 대해 오랫동안 계속 생각하도록 일부(일부 기준에 따라 양호) 프로그램을 남길 수 있습니다. 그들은 여전히 ​​무언가를 생각하고 있을 수 있으며, 이것은 현재(변했더라도) 상황에서 유용한 것으로 판명되거나 추가 학습에 유용한 것으로 판명될 것입니다. 예를 들어, 뒤쳐지는 프로그램은 적의 의도를 해독하거나 흥미로운 전술적 솔루션을 찾을 수 있습니다. 그런 다음 현재 상황을 이 솔루션으로 전환하려고 시도할 수 있으며(인공 지능이 "마음을 바꿨습니다"), 그 시간까지 게임이 이미 끝난 경우(또는 다른 방향으로 진행한 경우) 찾은 솔루션은 다음과 같습니다. 훈련에 사용. 이 두 가지 옵션이 정확히 어떻게 구현되는지는 별도의 연구 주제입니다. 동시에 인공 지능은 항상 "온라인" 상태가 될 것이며 거의 사람처럼 생각하고, 스스로를 개선하고, 스스로 대화를 수행할 것입니다.

옵션의 폭발. 별도의 프로그램(또는 프로그램 그룹)이 분기되는 상황, 모호한 상황이 감지되고 이 상황이 강제로 새로운 의사결정 분기(프로그램 + 에뮬레이터)로 분기되는 상황을 감지하려고 시도할 수 있습니다. 다시 말하지만, 그러한 상황을 어떻게 감지하고 어떻게 분기할 것인가는 별도의 연구 주제인 경작되지 않은 분야입니다. 지금까지 이것은 모호한 경우 지성이 옵션을 분기할 수 있어야 한다는 아이디어의 수준에 불과합니다. 그러나 분기는 의사 결정 트리를 순회하는 것과 동일하지 않습니다. 모호성이 있는 연산(허수 단위)이 여러 옵션을 제공할 때 복잡한 산술처럼 파동 함수를 퍼뜨리는 것과 같으며 나중에 동일한 산술의 규칙에 따라 서로 상호 작용합니다. 또한 인공 지능의 분기 솔루션은 계속 함께 존재해야 하며 서로 계속해서 의사 소통해야 합니다(정확히 질문이기도 함). 적절한 순간분기는 단일 솔루션으로 수렴할 수 있습니다. 또한 분기는 옵션 열거의 경우와 같이 어리석게 발생하지 않고 가장 흥미로운 순간에 발생합니다.

잠재적 분기점을 정확히 어떻게 감지할 수 있습니까? 일반 신경망의 경우 데이터 처리에 충분하지 않으면 신경망의 용량을 늘리고 의사 결정에 과도하면 네트워크의 용량을 줄이는 알고리즘이 있습니다. 신경망에서 용량을 변경하는 것은 뉴런과 뉴런 자체 간의 가중치 연결을 추가 및 제거하는 것입니다(비선형 행렬의 행 추가/삭제 및 솔루션에 영향을 미치지 않는 요소 0 제거 읽기). 필요에 따라 성장하는 신경 나무에 대한 전체적인 추세가 있습니다. 따라서 프로그램 팀에서 서로 다른 프로그램이 "생각하는" 것을 확인하고 유사한 상황을 최소화하고 "생각"의 새로운 방향을 생성하려고 시도할 수 있습니다. 이를 평가할 때 우선 에뮬레이터가 도움이 될 것입니다. 우리는 에뮬레이터가 외부 환경에 대한 비전을 얼마나 유사하게 제공하는지 살펴볼 필요가 있습니다.

또한 개별 프로그램을 확인하여 솔루션이 얼마나 명확하게 제공되는지 확인할 수 있습니다. 프로그램이 여러 솔루션 사이를 방황하거나 솔루션으로 수렴하지 않으면 "대체 생각의 과정"을 자극하기 위해 동일한 상황으로 초기화되지만 무작위 편차가 있는 이 상황에 추가 프로그램을 던질 수 있습니다. 분기는 또한 프로그램이 솔루션에서 얼마나 모호한지 결정하고 모호한 사례를 팀에서 더 성공적으로 함께 작업할 수 있도록 모호하지 않은 여러 프로그램으로 나누는 것이 가능할 때 학습에 유용할 수 있습니다. 그러나 다시 말하지만, 이 모든 것은 단지 아름다운 아이디어, 실험을 위한 아이디어일 뿐입니다.

그들은 꿈을 꿀 것이다

올바른 행동의 예가 있거나 환경의 반응을 모방할 수 있으면 좋습니다. 자연 지능(및 인공 지능의 미래)에게 이러한 사치가 항상 가능한 것은 아닙니다. 지성은 환경과 함께 무언가를 하려고 하고 있습니다. 무언가는 올바르게 나오고, 무언가는 그렇지 않고, 무언가는 이해할 수 없는 결과로 남습니다. 이것으로부터 어떻게 배울 수 있습니까?

이를 위해 세 번째 유형의 환경 에뮬레이터를 소개합니다. 그것은 외부 환경의 징후, 인공 지능이 이러한 징후에 대한 반응으로 무엇을 했는지, 그리고 그것이 무엇을 초래했는지 기억할 것입니다. 이것은 경험이 축적됨에 따라 그러한 에뮬레이터가 에뮬레이션과 환경 예측이라는 이전의 두 가지 유형을 결합할 수 있고 우리의 인공 지능과 유사한 원칙을 기반으로 구축될 가능성을 배제하지 않습니다.

어떤 행동이 옳고 그렇지 않은지에 대한 명확한 정보가 없을 때 어떻게 배우는가? 작은 탈선. Hopfield 네트워크는 오류 수정 없이 중요한 평가 없이 모든 예제를 "요약"하여 예제에 대해 훈련됩니다. 반복 과정에서 부분적 또는 잡음이 있는 이미지에 대해 훈련된 Hopfield 네트워크(이 이미지의 최소 에너지로 수렴)는 원본 이미지를 다시 생성할 수 있습니다. 따라서 네트워크에서 훈련한 후 때때로 잘못된 이미지를 얻습니다. 잘못된 이미지를 제거하기 위해 입력에서 훈련 예제가 시작되고 네트워크가 잘못된 이미지로 수렴되면 해당 이미지를 덮어씁니다. 어떤 식 으로든 네트워크는 이전에받은 정보를 기반으로 "꿈꾸고"꿈에서 잘못된 정보는 올바른 정보로 대체됩니다. 홉필드 네트워크는 다음을 위해 사용됩니다. 단순한 이미지, 그러나 우리는 원칙에 관심이 있습니다.

우리는 여기에서 같은 길을 갈 수 있습니다. 외부 환경에서 정보가 축적된 후 외부 환경에서 지능이 꺼지고 에뮬레이터에서만 작동합니다. 에뮬레이터는 상황을 재현하고 지성이 좋은 솔루션을 제공하면이 솔루션이 강화되고 나쁘면이 솔루션이 다른 것으로 대체됩니다. 예를 들어 임의의 경우. 가장 중요한 것은 새로운 솔루션이 나쁜 것처럼 보이지 않는다는 것입니다. 동시에 축적된 좋은 해결책이 사라지지 않고 새로운 나쁜 해결책이 나타나지 않도록 변화를 만들어 갑니다.

최소한, 이러한 재배열은 유전자 알고리즘을 사용하여 수행될 수 있습니다. 프로그램을 구성하는 각 규칙에 대한 교차 평가도 가능하므로 각 규칙에 대한 오류 및 수정 사항을 정확하게 계산할 수 있습니다. 결국, 우리는 프로그램이 잘 작동했는지 나쁘게 작동했는지에 대한 정보를 가지고 있습니다. 프로그램 팀에서 결정을 내린 경우 결정의 정확성에 대한 정보는 우승한 프로그램에 대해서만 알려져 있다는 점에서 여기서 더 어렵습니다. 그러나 다른 한편으로 우리는 시간이 오래 걸리는 프로그램의 동작에 대한 정보를 가지고 있으며 이미 세부 사항을 추출하는 것이 가능합니다.

따라서 인공 지능을 자연 상태에 두게 되면 시행 착오를 통해 정보가 축적되는 긴 각성 단계가 있고 이 정보가 질적으로 소화되는 수면 단계가 있습니다. 이 과정 자체가 길고 힘든 일이 될 것입니다. 자연 지능에서 그러한 메커니즘은 한 번 진화 과정에서 나타났으며 그 유용성을 빠르게 보여 주었고 다음 세대를 위해 증가했습니다. 말하자면 진화 과정에서 출현하기 위해 사물은 그다지 복잡하지 않습니다.

그들은 고통을 느낄 것이다

또 다른 훈련 옵션은 조치의 정확성에 대한 정보를 사용할 수 없는 경우입니다. 어닐링 방법으로 학습할 때 매개변수의 임의 변경이 전체 솔루션에 걸쳐 사용되어 솔루션을 재구축한다는 점을 상기시켜 드리겠습니다. 이러한 변화(온도)의 강도는 높게 시작하여 용액이 다음으로 수렴함에 따라 점차 감소합니다. 최선의 선택. 변화가 우리에게 적합하지 않으면 더 적합한 옵션을 찾기 위해 변화의 강도(어닐링 온도)가 증가합니다.

따라서 진화 과정에서 통증 메커니즘이 개발되었습니다. 잘못된 행동 - 그리고 우리는 즉시 우리의 신경 연결이 잔혹한 불꽃에 삼켜지는 것을 느낍니다. 그러한 충격은 눈에 띄지 않습니다. 잘못된 행동의 결과는 말 그대로 우리의 신경 연결에 불타오릅니다. 우리는 이러한 잘못된 행동의 반복을 반드시 피해야 합니다. 메커니즘은 간단하지만 효과적입니다.

인공 지능에서 학습은 더 높은 무작위 변경 비율로 보완될 수 있으며, 지능이 잘못된 결정을 내리면 더 높은 목표 지향적 변화 비율로 보완될 수 있습니다. 이러한 추가 사항은 프로그램 팀 수준과 개별 프로그램 또는 규칙 수준에서 모두 적용될 수 있습니다. "나쁜" 규칙이나 프로그램은 동시에 잘못된 행동의 결과로 말 그대로 소각될 수 있습니다. 좋은 규칙그리고 프로그램은 보존되고 증가될 것이지만 그들은 불과 같은 잘못된 행동을 "두려워할" 것입니다.

더 높은 수준의 지능에서 "고통"은 "머리가 아이디어에서 갈라진다", "생각을 모으는 것이 불가능하다" 등의 사실로 나타납니다. 좋은 결정의 상태는 생각의 명확성, 조화 및 "마음의 평화"를 동반합니다.

규칙의 앙상블

진화 학습 과정에서 규칙의 일부가 복제되어 상위 인스턴스와 상호 연결된 상태를 유지한다고 상상해 보세요. 예를 들어, 동일한 입력 및 출력에 연결된 상태로 유지되어 거의 동시에 활성화됩니다. 동시에 규칙은 여전히 ​​서로 다르며 추가 진화는 다른 방식으로 진행될 수 있습니다. 이제 우리는 규칙의 이 부분이 변경 중에 대부분 상호 연결된 상태로 유지되도록 할 것입니다. 따라서 출력, 출력, 활성화 및 발행된 솔루션이 대체로 동일합니다. 이 경우 앙상블의 규칙은 다른 앙상블을 포함하여 다른 장소에 참여할 수 있습니다.

앙상블은 모든 규칙과 함께 결정을 내립니다. 공동 작업으로 인해 솔루션이 더 나은 것으로 판명되었습니다(최소한 기존 신경망의 경우 이 방법이 나타남). 그러나 동시에 앙상블은 상황에 대한 새롭고 질적으로 다른 표현을 가질 것이며 앙상블의 규칙이 다른 장소(및 앙상블)에 참여한다는 사실 때문에 초기 상황을 훨씬 넘어서서 행동할 수 있을 것입니다. (그리고 이것은 이미 프로그램에 참여하는 앙상블에 관한 가정입니다). 상황에 대한 비전은 다른 상황의 경험을 통해 더 높은 수준, 더 일반화되고 더 확장되고 풍부해질 것이라고 말할 수 있습니다. 따라서 경계선이나 새로운 상황에서 앙상블은 새로운 현실, 그가 훈련 중에 본 오래된 것, 의미에서 계속.

여기에서 추상화-범주, 연상적 사고와 같은 것들이 서서히 나타나기 시작합니다. "무거운" 논리 체인이 나타나기 시작하고 상황에 대한 더 높은 비전으로 인해 형식 논리 및 엄격한 알고리즘에 가까운 "얇은" 논리 체인을 생성할 수 있습니다.

새로운 상황에 직면했을 때 그러한 앙상블을 보유하고 있는 프로그램은 경험을 새로운 상황으로 이전하고 일반화하는 것이 훨씬 더 쉬울 것입니다.

이 모든 것은 여전히 ​​​​아름다운 가정이지만 분명히 그 방향으로 가고 있습니다. 그러한 앙상블이 뇌에서 정확히 어떻게 형성되고 유지되었는지는 여전히 불분명합니다(그러나 진화적으로는 매우 단순해 보인다는 것을 인정해야 합니다). 프로그램에서 앙상블을 지원하고 이끄는 방법도 문제입니다. 분명히 앙상블에 대한 규칙의 명확한 고정은 없으며 모든 것이 경쟁 및 상호 작용의 동일한 원칙에 따라 특정 상황에 호환되는 규칙을 결합하여 동적으로 결정됩니다. 동시에 규칙과 앙상블은 계층 구조에서 동적으로 정렬될 수 있지만 그럼에도 불구하고 영구적인 계층 구조가 없고 메타 수준과 이들 사이의 전환도 없으며 할당과 함께 명확한 공식화도 없습니다. 시스템 하위 시스템 연결. 이것이 어떻게 형성될 수 있는지에 대한 자세한 내용은 뒤따를 것입니다. 그리고 당신은 사물의 자연스러운 과정의 관점에서 볼 때 모든 것이 아주 단순해 보인다는 것을 인정해야 합니다.

그리고 다시 파도, 주파수 및 홀로그래피

우리의 인공지능 프로그램에서는 경쟁 프로그램으로의 분할과 상황에 대한 대안적 비전을 인위적으로 설정합니다. 같은 방식으로 모든 규칙이 액세스할 수 있는 전역 상태와 새로운 순간마다 모든 규칙을 활성화하고 상황을 업데이트하는 클록 생성기가 인위적으로 도입됩니다. 그러나 뇌에는 그런 것이 없으며, 자연적으로 매우 유사한 것이 형성됩니다.

우리가 가진 것은 잠재력을 축적하고 임계 임계값을 초과하면 출력을 통해 일련의 신호를 방출하는 자연 뉴런의 특성입니다(이전 부분에서 주파수 신경망에 대해 기억하십니까?). 이 시리즈는 차례로 원래 뉴런의 입력에 연결된 뉴런의 전위를 매번 올리거나 낮춥니다. 임계 전위, 주파수 및 방전 기간은 학습 과정에서 분명히 조정되는 매개변수입니다.

따라서 클럭 생성기, 루프 및 조건부 전환, 전역 상태 및 상황의 강제 병렬화가 필요하지 않은 것으로 나타났습니다.

그러한 뉴런의 집합체는 이미 내부 상태, 복잡한 반복 논리 및 조건부 처리를 수행합니다.

또한 뉴런 묶음은 상황에 대한 고유한 비전을 가진 대체(병렬) 사슬로 결합될 수 있으며 출력에서 ​​이러한 모든 사슬은 결정이 출력에 제출될 서로 경쟁합니다. 그리고 이러한 처리는 기존 컴퓨터에서 모델링하기에 매우 적합합니다. 또 다른 점은 처음에는 강제 병렬화 인텔리전스 모델보다 리소스가 더 많이 필요할 수 있지만 장기적으로 규제가 덜한 모델이 더 효율적일 가능성이 있다는 것입니다.

이제 앙상블과 메타 앙상블에 대해 이야기합시다. 전체 파면이 별도의 앙상블을 로밍하는 것으로 나타났습니다. 이 앙상블은 서로 다른 앙상블에서 결합하여 복잡한 파동 패턴을 제공하며, 아마도 홀로그램 이미지보다 훨씬 더 복잡할 수 있습니다. 개별 뉴런(또는 인공 지능의 네트워크 규칙)을 앙상블과 메타 앙상블로 동적으로 연결하는 것은 이러한 파동 패턴입니다.

이 모든 것이 자연스러우면서도 실용적으로 어떻게 이루어졌는지 확인하십시오. 주파수 및 홀로그램 네트워크를 별도로 발명할 필요가 없으며 고문하거나 이미지를 인식하도록 강제할 필요도 없습니다. 효과적으로 적용하는 것으로 충분합니다. 자연 코스이러한 모든 주파수-홀로그래픽 속성이 어떻게 부작용으로 나타납니까?

일단 뇌에 있는 초기 상황은 많은 대안적 사슬로 분할되어 뉴런 잠재력의 변화라는 폭풍우를 일으킵니다. 결과적으로 훨씬 더 복잡하고 질적인 표현을 받습니다. 출력에서 이 모든 처리는 다시 실행되는 동안 발행해야 하는 좁은 한계로 축소됩니다. 외부 세계.

연관, 범주, 일반화 및 기타 철학

앙상블 섹션에서 우리는 규칙이 프로그램의 다른 위치에 참여하는 것이 좋을 것이라고 언급했습니다. 이것이 규칙이 완전히 이질적인 상황에서 경험을 질적으로 일반화하는 방법을 배우는 이유입니다. 즉, 그들은 연관 사고 및 범주화와 같은 높은 수준의 추상화의 경로에 있을 것입니다. 예를 들어 '흰색'과 '푹신푹신'의 개념에서 공통점을 가져와 '날아가는' 상황에 적용할 수 있을 것이다. 그러한 처리는 사고를 훨씬 더 강력하게 만들고 완전히 이질적인 상황에 대한 규칙의 앙상블을 동적으로 구축할 수 있게 합니다.

이러한 특성을 얻기 위해 앙상블과 유지 관리를 인위적으로 도입했습니다. 한 상황(개념)에 대해 훈련된 규칙이 완전히 다른 상황에 참여하고 다시 학습할 수 있도록 하는 속성을 다른 어떤 방법으로 얻을 수 있습니까(다른 개념의 경우, 예를 들어 흰색 / 솜털 / 파리처럼)?

지금까지 두 가지 옵션이 있습니다.

옵션 1, 입력 및 출력의 동적 조합. 처음에 우리는 글로벌 상태의 셀과 규칙(신경망)의 입력과 출력 사이에 엄격한 대응을 두었습니다. 진화적 변화는 이러한 대응을 가능한 한 적게 변경하도록 설정되었습니다. 다음 옵션에서 전역 상태 없이 입력 및 출력 다른 규칙-네트워크도 서로 단단히 연결되어 있습니다.

이제 작업 과정과 학습 과정에서 입력과 출력이 서로 상대적인 위치를 변경하도록 합시다. 두 가지 질문이 있습니다. 첫째, 결과 조합의 요소가 얼마나 호환되는지, 이 화합물이 문제를 얼마나 효과적으로 해결하는지 결정하는 방법은 무엇입니까? 둘째, 조합이 많기 때문에 입력과 출력의 호환 가능하고 효과적인 조합을 빠르게 찾는 방법은 무엇입니까?

가장 간단한 옵션은 규칙의 각 입력과 출력을 진화적으로 변화하는 부호 호환성과 일치시키는 것이며, 아마도 규칙의 결과를 기반으로 학습 과정에서 이 호환성을 더 정확하게 미세 조정할 수 있는 방법이 있을 것입니다. (규칙 실행 중에 출력의 호환성을 계산할 수 있습니까? 효율적입니까?) 외부 환경에 대한 입력 및 출력의 경우 일반 집합의 일부가 되는 호환성 집합도 필요합니다. 프로그램이 실행 중일 때 규칙은 입력과 출력의 호환성을 고려해서만 연결됩니다. 이러한 호환성을 선택하는 작업은 계산 측면에서 쉽지 않지만 여전히 완전히 어려운 것은 아닙니다. 아마도 비슷한 일을 할 수 있는 Hopfield 네트워크의 알고리즘이 이 선택에 도움이 될 것입니다.

다음 옵션은 학습 과정에서 다른 방식으로 다른 규칙의 입력과 출력을 결합하고 다른 조합의 효율성(호환성)에 대한 정보를 축적하는 것입니다. 실제 작업에서 위와 같이 진행하십시오. 호환성에 따라 입력을 결합하십시오.

이전 옵션은 인공 지능 구현에 적합하지만 자연 지능에서 이러한 입력과 출력의 조합은 존재하지 않는 것 같습니다. 그러나 기능 맵이 있습니다. 이전 부분에서 컨볼루션 네트워크와 네오코그니트론에 대해 참조하십시오. 그리고 그러한 지도는 자연 지능에 존재하는 것 같습니다.

기능 맵의 의미는 다음과 같습니다. 규칙 세트가 있고 입력 셀 세트가 있습니다. 각 규칙은 움직이는 창을 사용하여 입력 셀을 스캔하고 창의 모든 셀은 규칙의 입력에 속합니다. 규칙 연산의 결과는 입력 셀에서 창의 위치에 해당하는 기능 맵의 셀에 기록됩니다. 결과적으로 각 규칙에 대해 규칙을 가장 잘 트리거하는 위치가 가장 높은 값을 갖는 기능 맵이 얻어집니다. 다음 레이어에서 모든 기능 맵은 새로운 규칙 세트에 대한 입력을 구성하고, 이는 다시 기능 맵을 구성합니다. 규칙은 오류를 역전파하여 학습할 수 있습니다. 프로그램의 일부로 그러한 규칙을 가르치는 방법은 열린 질문입니다.

특징 맵은 스케일, 각도, 회전의 변화 및 묘사된 개체에 특정한 변형과 ​​관련된 왜곡과 함께 이미지 인식에서 잘 수행되었습니다.

따라서 기능 맵은 프로그램을 구성하는 규칙에 대한 입력 및 출력의 동적 조합에 대한 실험에 적합한 후보입니다.

옵션 2, 입력 및 출력의 주파수 조합. 이 변형에서는 입력과 출력을 재배열할 필요가 없습니다. 주파수 신경망(또는 그러한 네트워크에 구축된 프로그램)에서 각 뉴런은 단순한 주파수 필터이자 단순한 주파수 생성기입니다. 더욱이 이 필터는 동시에 다른 고조파에 맞춰 조정할 수 있습니다(주파수 네트워크의 용량과 기능이 기존 네트워크보다 높음). 유사하게, 뉴런의 모든 조합은 복합 주파수 필터와 복합 주파수 생성기 모두입니다. (우리의 인공 지능에서 이러한 뉴런은 작은 신경망으로 표현되는 단일 규칙과 동일합니다).

따라서 완전히 이질적인 개체와 관련된 신호는 동일한 뉴런을 서로 다른 주파수로 로밍할 수 있습니다. 그러나 다른 주파수는 동일한 뉴런(뉴런의 조합)에 영향을 미치기 때문에 다른 주파수(및 이들에 의해 처리되는 개체)는 서로 영향을 미칩니다. 따라서 우리의 지능이 주파수 신호 처리의 원리에 기반을 두고 있다면(위의 주파수 섹션에서 언급한 바와 같이) 이 지능은 이미 이질적인 개체와 일부 철학적 추상화를 일반화할 수 있는 능력을 가지고 있는 것 같습니다. 그러나 주파수 네트워크에서 이러한 일반화의 형성을 가속화할 추가 기술 솔루션이 있을 수 있습니다.

그리고 약간의 결론. 입력과 출력을 재결합하는 이러한 방법은 연관 사고 및 질적 일반화와 같은 고급 속성뿐만 아니라 보다 산문적인 속성도 제공합니다. 전선이 전기 회로에 섞여 있으면 어떻게됩니까? 아마도 이것은 회로에 치명적일 것입니다. 그러나 뇌에는 필요하지 않습니다. 뇌를 말 그대로 조각으로 자르고 섞은 다음 뒤로 접고 동물을 풀어 놓은 실험 (동물에 대한)이 수행되었습니다. 얼마 후, 동물은 정상으로 돌아와서 살았습니다. 유용한 속성, 진실?

메타 레벨이 없습니다

지능 시스템에서 논리적 계층 구조가 어떻게 구축되는지 의아해하면, 다른 하나가 하나의 맑은 수준 위에 구축되어 여러 하위 수준을 그 자체로 일반화할 때 논리적 구성이 어떻게 발생하는지. 인공 지능에 대한 작업에서 (뿐만 아니라) 시스템이 어떻게 진화하고, 복잡성이 자체적으로 축적되고, 한 수준에서 다른 수준으로 이동하는지 아름답게 그려졌습니다.

실제 시스템에서는 하위 수준을 아무리 잘 생각해도 항상 일부 불일치, 상위 수준과 조정할 수 없는 변경이 누적되며 이러한 변경은 조만간 전체 시스템을 깨뜨리고 주요 작업이 필요합니다. 전체 계층 구조 조정. 탈출구는 그러한 위계질서에 너무 집착하지 않고, 필요한 경우 공식적인 위계질서를 우회하여 일할 수 있도록 행동의 자유를 떠나는 것이었습니다. 그리고 이것은 잘못 설계된 시스템의 표시가 아니라 이것이 삶의 현실입니다.

물론 올바른 시스템은 혼란을 최소화합니다. 그것이 바로 시스템입니다. 그러나 이것이 그러한 시스템에 비공식적 유대가 완전히 없다는 것을 의미하지는 않습니다. 좋은 시스템은 모든 정확성을 위해 자체 파괴 요소를 지니고 있어야 합니다. 시스템이 더 이상 작업에 대처할 수 없을 때 작동하는 요소, 새로운 현실을 위해 시스템을 완전히 재구축하는 요소입니다.

따라서 인공 지능에서는 논리적 수준과 메타 전환을 위한 자리가 없는 것 같습니다(특히 연관 및 일반화에 대한 이전 섹션의 관점에서 볼 때). 모든 규칙(우리가 이해하는 뉴런)은 모든 수준에서 동시에 의사 결정에 관여합니다. 규칙-뉴런은 다양한 계층에서 다양한 앙상블에서 동적으로 정렬될 수 있습니다. 그러나 이러한 동적 정렬이 있더라도 계층적 엄격성이 없으며 하위 수준의 요소가 상위 수준에 쉽게 영향을 미치므로 완전히 다시 빌드할 수 있습니다.

규칙을 적용하는 각각의 특정 경우에 고유한 계층을 구축할 수 있습니다. 그러나 이 계층 구조는 다양한 형식화에서와 같이 정적이지 않습니다. 지능에서 모든 것은 어느 쪽을 당겨야 하는지, 어떤 각도에서 봐야 하는지에 달려 있습니다. 각 모서리에는 자체 계층 구조가 있으며 이러한 "관점"이 많이 있을 수 있습니다. 지성 내부에는 분명히 명확한 계층 구조가 없습니다(뇌의 어느 부분이 어떤 기관을 담당하는지 결정하는 "하드웨어" 수준이 아님).

양자 유전학

양자 컴퓨팅과 지능의 양자 속성에 대해 흥미로운 이야기가 많이 나옵니다. 어떤 사람들은 뇌가 생각하기 위해 양자 과정을 직접 "끌어올" 수 있다고 믿습니다.

간단히 말해서 양자 컴퓨팅의 본질은 다음과 같다. 초기 데이터는 소수의 소립자에 적용됩니다. 해결하는 과정에서 엄청난 수의 데이터가 동시에 처리되기 시작합니다. 다른 방법들또한 이러한 방법은 서로 의사 소통하고 누가 더 나은 솔루션을 가지고 있는지, 누가 더 나쁜 솔루션을 가지고 있는지, 나쁜 결정은 약화되고, 좋은 결정은 강화됩니다.

이것은 양자 컴퓨팅을 시작할 때 각 입자가 계산에 관련된 다른 모든 입자의 상태를 완전히 "느끼고", 상당한 에너지 비용 없이 즉시 느끼기 때문에 발생합니다. 솔루션이 실행되면 입자는 외부 세계에서 탐색할 수 없는 "번짐"("엉킴") 상태에 잠깁니다. 번짐 상태에서 각 입자는 명확한 물리적 상태가 없으며 각 입자는 동시에 여러 상태에 있으며 여러 병렬 프로세스에 참여할 수 있습니다(이 프로세스는 서로를 "느끼는"). 또한 용액에 포함된 입자가 많을수록 동일한 입자가 동시에 가질 수 있는 상태가 더 많아집니다.

번진 상태로 들어가서 내부에 무엇이 있는지 보려고하면 각 특정 순간에 여러 동시 상태에 대한 힌트없이 입자의 특정 물리적 상태를 얻게됩니다. 또한 이러한 개입 후에는 결정 프로세스가 완전히 파괴되고 다중 상태를 복원할 수 없습니다. 따라서 입력 데이터를 설정하고 솔루션의 결과를 제거하는 사이의 간격에서 어떤 일이 발생하는지 미스터리입니다. 해결 과정에서 적은 양의 입력 데이터가 훨씬 더 복잡한 내부 상태를 생성한다는 것이 밝혀졌습니다. 이 상태는 어떻게 진화하는지 명확하지 않고 연구에 적합하지 않지만 그럼에도 불구하고 올바른 솔루션을 제공합니다. 번짐 상태를 연구하려고 할 때 취해진 상태는 확률적 성격을 띤다. 양자 알고리즘을 올바르게 컴파일하면 올바른 솔루션을 제거할 확률이 잘못된 솔루션을 제거할 확률보다 훨씬 더 높게 만들 수 있습니다(즉, 솔루션은 최소한 여러 번 제거해야 함).

이런 식으로 거의 무료로 엄청난 컴퓨팅 성능을 얻을 수 있는 것 같습니다. 그러나 문제가 있습니다. 솔루션의 입자는 외부 세계와 완전히 격리되어야 합니다. 그렇지 않으면 외부 세계가 솔루션의 정확성을 무너뜨릴 것입니다(일관성 깨짐). (양자 물리학이 말하는 것처럼) 모든 입자, 모든 양자는 처음에 우주 전체에 번지고 우리 우주를 구성하는 다른 모든 입자와 밀접하게 얽혀 있기 때문에 완전한 분리가 불가능하다는 의견이 있습니다. 그리고 이 의견의 결과로 양자 컴퓨팅은 다른 우주에 퍼져 있는 상태에 입자를 담그지 않고 계산을 병렬화하기 위해 우리 우주의 다른 아주 특정한 입자를 끌어들인다는 것이 밝혀졌습니다. 사실, 이것은 여전히 ​​내부 상태를 연구하는 데 어려움을 없애지 못합니다.

이로부터 몇 가지 흥미로운 결론이 나옵니다. 고전력 양자 컴퓨팅은 절대적으로 정확한 계산을 제공할 수 없지만 위에서 설명한 것처럼 인공 지능과 같은 그럴듯한 솔루션에는 매우 적합합니다. 그리고 이전의 결론과 밀접하게 교차하는 또 하나의 결론 - 양자 컴퓨팅은 우주의 불가분의 일부이기 때문에 자기 지식, 자기 반성을 제공할 수 없으며 따라서 자신과 우주 전체를 알 수 없습니다. 중요한 부분. 사실 이전 부분에서 언급했듯이 양자 입자의 상태를 측정하려고 할 때 양자 불확실성이 뒤따르는 이유는 무엇입니까? 결국, 자신의 도움만으로 자신을 완전히 아는 것은 불가능합니다. 양자 불확실성은 사실 형식 체계가 절대적인 진정한 정확도로 자신을 알 수 없다는 괴델의 정리의 직접적인 결과입니다.

이제 지능으로 돌아갑니다. 많은 연구자들이 양자 컴퓨팅의 속성과 인간의 지적 과정 사이의 유사점을 정확하게 알아차렸습니다. 우리에게 가장 흥미로운 속성은 다음과 같습니다. 결정의 입력과 출력은 상당히 단순한 상태 집합입니다. 이러한 단순한 상태는 뇌를 외부에서 탐색할 수 없는 훨씬 더 복잡한 상태로 몰아넣습니다. 이 상태를 조사하거나 결정을 제거하려는 시도 - 다시 세트 생성 단순 상태, 그리고 이러한 상태는 또한 확률적이며 잘못된 것보다 올바른 솔루션을 제공할 가능성이 더 큽니다. 이 내적 상태는 출입과 달리 사람이 깨닫기 어렵지만 이 내적 상태를 '펠트'라고 합니다. 양자 컴퓨팅에서와 같이 초기 상태를 설정하고 결정을 제거하는 것은 시간이 많이 걸리는 절차입니다. 그래서 사람은 '자기 안에서' 생각하기 쉽지만, 자신의 생각을 외부에서 다른 사람에게 전달하려면 열심히 노력해야 합니다.

이제 위의 양자 컴퓨팅과 인간 지능의 속성은 앞서 설명한 유전자 알고리즘을 기반으로 하는 인공 지능 알고리즘에 실질적으로 1:1 적용된다는 점만 유의하면 됩니다.

실제로, 파동, 주파수 및 뉴런이 있는 뇌의 어디에서 염색체 및 대체 솔루션과 함께 일종의 유전 알고리즘이 발생할 수 있습니까? 다른 측면에서 보면 유전자 알고리즘은 더 많은 현상 중 하나일 뿐입니다. 일반 클래스프로세스.

뇌가 흥미로운 양자 특성을 나타내기 위해서는 양자 과정을 직접적으로 끌어낼 필요가 전혀 없으며 보다 실용적인 설명이 있다는 것이 밝혀졌습니다. 그리고 양자 컴퓨팅 자체가 평행 우주와 절대적 진리에 대한 신비주의를 포함할 필요는 전혀 없습니다. 왜냐하면 그것들은 미시적 수준에서 입자를 번진 상태에 담그는 척하는 일종의 유전 알고리즘으로 잘 조직될 수 있기 때문입니다. 자체 우주의 컴퓨팅 리소스로 사실 콘텐츠를 제공합니다.

양자 컴퓨팅, 유전 알고리즘 및 기타 인공 지능 영역의 접합에서 컴퓨팅에 대한 새로운 이론이 등장할 것이며, 이는 보다 강력한 양자 컴퓨터를 만드는 것을 가능하게 하고 엄격한 장치를 기반으로 허용할 것입니다. 지능에서 일어나는 과정을 보다 정확하게 설명하기 위해 양자 물리학의 결국, 우리가 지금까지 지능을 이해하면서 얻은 것은 우리가 할 수 있을 때 "0.5 + 0.5가 1리터가 될 것이라고 직감하지만 수학적으로 증명할 수는 없습니다"라는 농담을 연상시킵니다. 우리는 아직 이유를 설명하지 않습니다.

사물의 내부 표현

뇌에서 외부 사물의 표현은 어떻습니까? 뇌가 사물과 현상의 물리적 모델을 재창조하는 것처럼 보일 수 있으며, 이로 인해 많은 잘못된 결론이 도출됩니다. 사실, 내부 표현은 물리적 모델과 전혀 동일하지 않습니다. 내부 모델은 그럴듯합니다. 내부 모델은 우리를 위해 객체의 가장 중요한 속성, 즉 일상적인 경험에서 사용되는 속성만을 포착하는 아날로그를 형성합니다. 이러한 내부 모델을 "순진한 물리학"이라고 합니다. 일상적인 경험의 한계 내에서 그러한 모델은 비록 정확하지는 않지만 매우 실용적인 결과를 제공합니다. 그러나 우리가 일상적인 경험을 넘어서자 마자 그러한 모델은 실패합니다.

그러한 모델을 형성하는 일련의 규칙은 실제 물리적 표현과 매우 다를 수 있습니다. 내부 표현이 실제 개체의 "환상적인" 속성을 많이 포함하는 이유는 내부 표현이 "자신의 삶을 살기" 시작하기 때문입니다. 예를 들어, 만화. 캐리커처에 그려진 얼굴은 사람이 쉽게 알아볼 수 있고 훈련된 사람은 캐리커처를 그릴 수 있습니다. 그러나 캐리커처 얼굴 인식 시스템은 당혹스럽습니다. 그리고 당연히 인식기에는 그럴듯한 모델이 있지만 인간 모델보다 물리적 모델에 훨씬 더 가깝습니다.

내부 표현은 또한 앞에서 설명한 복잡성의 기울기가 특징입니다. 그것은 더 단순한 대상이나 현상이 사물의 본질을 모델링하는 책임이 있는 훨씬 더 복잡한 내부 표현을 생성한다는 사실로 구성됩니다. 결국, 지성은 물리학을 직접적으로 모델링할 수 없습니다. 단순한 생각이 사물의 본질에 대한 "느낌"을 일으키며, 이유를 느끼지만 설명할 수는 없습니다. 더 복잡한 표현은 사물의 표현을 이해, 환상, 의식적 사고 수준으로 확장할 수 있습니다(예: 캐리커처).

안녕하세요 논리

논리란 무엇이며 최고의 지적 활동은 어디에서 오는가?

우리의 지성은 입력 상황을 훨씬 더 복잡한 내부 표현으로 분해하는 수많은 경쟁 프로세스의 조합으로 가장 단순한 "입력-출력" 반응에서 벗어났습니다.

결과적으로, 어떤 것들의 경우, 이 사물의 내부 표현인 엄청난 복잡성(원래 사물의 물리학보다 훨씬 더 복잡한)의 규칙 복합체가 형성될 수 있습니다. 이러한 규칙이 어떤 종류의 규칙이 될 수 있고 대략적으로 형성될 수 있는지는 위에 설명되어 있습니다. 그러나 가장 중요한 것은 원래 현상과 설명 간의 복잡성 차이로 인해이 현상에 대한 질적으로 다른 표현이 가능하게되어이 현상에 대한 새로운 지식을 높은 수준의 그럴듯하게 유도 할 수 있다는 것입니다.

지능 대 알고리즘의 역설은 알고리즘이 현상의 본질을 이해하지 않고는 사물의 물리학을 어리석게만 모델링할 수 있고 현상에 대한 새로운 지식을 도출할 수 없으며 그것의 일. 지성은 사물의 본질에 대한 훨씬 더 복잡한 내부 표상으로 인해 동일한 사물을 모델링할 수 있을 뿐만 아니라 사물에 대한 새로운 지식을 도출하고 사물에 대한 판단의 진실성을 평가할 수 있습니다. 높은 수준의 타당성.

대상과 현상의 본질에 대한 표현을 대상과 현상의 원래 "물리학"보다 훨씬 더 복잡한 표현으로 확장하는 복잡성의 전환은 이해의 역할에 적합한 후보입니다. 복잡한 내부 표현으로의 분해가 있습니다. 사물의 본질에 대한 이해와 고품질 작동이 있으며 예기치 않은 상황의 경우 유연한 대응이 가능합니다. 그러한 분해가 없습니다. 맹목적으로 알고리즘을 따르는 어리석은 "벼락치기"만 가능합니다. 알고리즘은 새로운 지식의 결론을 제공하지 않고 작업의 본질이나 진실에 대한 설명을 제공하지 않으며 새로운 요소가 발생하면 길을 잃습니다. .

알고리즘에 대한 어리석은 준수는 더 높은 지적 활동을 끌어들이지 않으므로 일반적인 상황에 대한 명확한 반응만 필요한 경우 빠르고 효율적입니다. 더 높은 수준의 지적 활동은 이해를 포함하여 다양한 알고리즘을 천천히 고정시킬 수 있지만 빠르게 실행할 수는 없습니다. 이러한 방법의 조합도 가능합니다.

다음 논리적 질문 - 이해 과정에서 일어나는 일을 이해할 수 있습니까? 그리고 동일한 논리적 대답 - 아마도 그렇습니다. 그러나 이것은 원래의 지적 과정의 복잡성보다 수십 배 더 큰 지성에서 발생하는 과정의 그러한 표현을 요구할 것입니다. 즉, 우리는 지성에 대해 무언가를 배울 수 있고 무언가를 할 수 있지만 인간 지성의 작업을 완전하고 질적으로 이해할 수 없습니다. 뇌의 힘만으로는 충분하지 않습니다. 우리는 패턴을 연구하고 사용할 수 있지만, 지금은 컴퓨터에서 발생하는 프로세스에 대한 완전한 인식 없이 컴퓨터를 사용합니다. 수백만 개의 트랜지스터에서 일어나는 모든 과정을 상상하는 것은 비현실적이지만, 컴퓨터 회로의 논리 단위가 어떻게 작동하고 그것들이 어떻게 더 높은 수준으로 결합되는지 이해하는 것은 꽤 가능합니다. 지능도 마찬가지입니다.

이상에서 이해가 왜 설명하기 어려운지, 왜 이해가 느끼기 쉬운지, 왜 이해에 수반되는 논리적 구성을 배치할 수 있는지, 이해를 이끌어낸 전체 기반을 재현하는 것이 매우 어려운 이유가 명확해집니다. 스스로를 이해하는 것. 아래에 이에 대한 전체 섹션이 있습니다. 여기에서 느낌이 무엇인지, 상태의 느낌이 무엇인지, 왜 느낌과 느낌을 표현하기는 어렵지만 느끼기는 쉬운지 명확해집니다. 일반적으로 관심이 있는 사람들에게는 많은 흥미로운 결과가 있습니다. 의식의 양자 속성의 방향을 살펴보십시오.

또 다른 질문은 우리가 우리 자신을 인식하고 우리 주변의 세계를 인식한다는 것이 정확히 어떻게 밝혀졌는가 하는 것입니다. 생각하는 기계가 그러한 인식을 달성할 수 있을까요? 이 근본적인 철학적 질문인공 지능의 범위를 벗어나지만 다음 부분에서 여전히 대답하려고 노력할 것입니다.

복잡성과 이해의 차이에 대한 생각을 계속하면서 우리는 초복잡한 내부 표현이 결국 내부 표현에서 매우 얇고 예리하고 조화로운 가장자리를 생성할 수 있다는 결론에 도달합니다. 것들. 즉, 이상화 또는 원래 사물의 추상화입니다.

이러한 추상화는 수많은 내부, 충돌 및 결합 프로세스의 반복적인 조합으로 인해 탄생했습니다. 그러나 대다수의 상호작용의 결과와 달리 내부 프로세스, 추상화의 경우 결과는 본질적으로 흐릿한(넓은) 것이 아니지만, 말하자면 한 점으로, 하나 이상의 매우 명확한 가장자리 또는 봉우리로 수집됩니다.

당연히 추상화는 무엇보다도 실제 프로토타입의 표현을 반복적으로 관찰하고 객체의 내부 표현과 관련된 반복적인 반사에 의해 생성됩니다. 더욱이 이러한 관찰과 반성의 다양성은 추상화를 제공하지 않는 다른 대상의 다양성보다 확실히 높습니다. 그리고 추상화의 내부 표현을 제공하는 규칙의 특성은 확실히 더 질서 정연하고 피크 조화, 형태에 더 적합합니다.

다음 단계는 이러한 피크 조화가 자체 법칙에 따라 작동하여 긴 사슬로 통합될 수 있다는 것입니다. 따라서 우리는 추상적이거나 논리적인 새로운 차원의 사고를 얻습니다. 당연히 그러한 수준은 일반적인 이해보다 훨씬 더 복잡하며 이해를 부여받은 모든 생물이 복잡한 논리적 구성을 할 수 있는 것은 아닙니다.

그러한 추상적인 사슬은 그들 자신의 법칙에 따라 어딘가에서 원래 프로토타입과 유사하고 어딘가에서 멀어질 것입니다.

논리적 구성이 어디에서 왔는지 주의하십시오. 그들은 알고리즘 수준이 아니며 다음 수준인 이해 수준에도 없습니다. 그것들은 이미 이해에 대한 일종의 이해인 3단계 지능을 구성하고 있습니다.

논리적 구성 과정에서 뇌는 원시 추론 기계와 같은 어리석은 알고리즘처럼 작동한다고 "척"할 뿐입니다. 사실, 논리적 구성에 관련된 프로세스는 원래의 논리적 구성보다 훨씬 더 복잡하며, 복잡성이 급증하기 때문에 지성은 새로운 논리적 구성을 생성하고 높은 정확도로 그 진실을 판단합니다.

같은 방식으로 두뇌는 "무거운" 프로세스로 인해 컴퓨터(튜링 머신)의 작업을 에뮬레이트할 수 있지만 두뇌는 "정밀한" 알고리즘을 따르는 것처럼 보입니다(특히 두뇌가 그러한 작업을 위해 훈련된 경우).

그리고 미묘한 논리적 구성과 알고리즘 작성에 대해 조금 더 자세히 알아보겠습니다. 초심자에게는 수학적 진리에 대해 생각하거나 컴퓨터 프로그램을 컴파일 할 때 깨달은 현자가 일종의 명상에 앉아 올바른 추론의 도움으로 올바른 결론에 도달하거나 올바른 프로그램을 생각해내는 것처럼 보일 수 있습니다. 실제로 일어나고 있는 일은 다음 다이어그램과 더 비슷합니다.

  • 나는 초기 버전(또는 실수로 생성한 것)인 "무언가"를 생각해 냈습니다.
  • 논리적 추론을 모방하여이 "무언가"의 작업을 확인하고 기억했습니다. 문제 영역.
  • 나는 타이핑하여 문제 영역을 개선하려고 노력했습니다(이 "무언가"를 개선했습니다).
  • 개선된 버전 등을 확인했습니다.

결국 뇌는 이동 중에 올바른 논리적 사슬을 생성할 수 있을 뿐만 아니라 논리적 추론을 에뮬레이션하여 이러한 사슬의 작동을 확인할 수 있습니다. 또 다른 점은 두뇌에는 다양한 상황에 대한 템플릿의 거대한 "라이브러리"와 이러한 템플릿을 서로 결합하는 방법에 대한 그럴듯한 규칙이 있다는 것입니다. 이러한 규칙과 패턴을 적용하여 적은 수의 시도로 좋은 논리적 추론과 프로그램을 구축할 수 있습니다. 특히, 이러한 규칙에는 템플릿의 다양한 조합 작업에 대한 진단이 포함될 수 있으며, 매번 전체 데이터 양에 대해 논리적 구성을 실행하는 대신 동적으로 보충될 수 있고 또 보충될 것입니다.

이번 주에 이 직업을 공부한 GeekBrains 학생이 자신을 직업으로 이끈 목표 중 하나인 작업 원리를 배우고 게임 봇을 직접 만드는 방법을 배우고자 하는 열망에 대해 이야기한 사례를 읽을 수 있습니다.

그러나 실제로 우리 중 많은 사람들을 프로그래머의 길로 인도한 것은 게임 모델이든 모바일 프로그램이든 완벽한 인공 지능을 만들고자 하는 열망이었습니다. 문제는 톤 뒤에 교육 자료고객의 가혹한 현실, 바로 이 욕구가 단순한 자기계발 욕구로 바뀌었습니다. 아직 어린 시절의 꿈을 이루기 시작하지 않은 사람들을 위해 진정한 인공 지능을 만들기 위한 짧은 가이드가 있습니다.

1단계. 실망

우리가 최소한 간단한 봇을 만드는 것에 대해 이야기할 때 눈은 광채로 가득 차고 수백 가지 아이디어가 그가 무엇을 할 수 있어야 하는지 머릿속에서 깜박입니다. 그러나 구현과 관련하여 실제 행동의 핵심은 수학이라는 것이 밝혀졌습니다. 예, 인공 지능은 응용 프로그램을 작성하는 것보다 훨씬 더 복잡합니다. 소프트웨어 설계에 대한 지식만으로는 충분하지 않습니다.

수학은 추가 프로그래밍이 구축될 과학적 기반입니다. 이 이론에 대한 지식과 이해가 없으면 인공 지능은 실제로 일련의 공식에 불과하기 때문에 모든 아이디어는 빠르게 사람과의 상호 작용으로 분해됩니다.

2단계. 수락

오만함이 학생 문학에 의해 조금 무너지면 연습을 시작할 수 있습니다. 아직 LISP나 다른 업체에 자신을 던질 가치가 없습니다. 먼저 AI 설계 원칙에 익숙해져야 합니다. 빠른 학습과 추가 개발 모두에서 Python은 훌륭합니다. Python은 과학적 목적으로 가장 자주 사용되는 언어로, 작업을 더 쉽게 만들어 줄 많은 라이브러리를 찾을 수 있습니다.

3단계. 개발

이제 우리는 AI 이론으로 직접 전환합니다. 조건부로 3가지 범주로 나눌 수 있습니다.

  • 약한 AI - 컴퓨터 게임에서 볼 수 있는 봇 또는 Siri와 같은 간단한 조수입니다. 그들은 고도로 전문화된 작업을 수행하거나 그 작업의 중요하지 않은 복합물이며, 상호 작용의 예측 불가능성으로 인해 막다른 골목에 놓이게 됩니다.
  • 강력한 AI는 인간의 두뇌에 필적하는 지능을 가진 기계입니다. 현재까지 이 클래스의 실제 대표자는 없지만 Watson과 같은 컴퓨터는 이 목표를 달성하는 데 매우 가깝습니다.
  • Perfect AI는 미래, 우리의 능력을 뛰어넘는 머신 브레인입니다. 스티븐 호킹(Stephen Hawking), 일론 머스크(Elon Musk), 터미네이터(Terminator) 영화 프랜차이즈가 경고하는 것은 그러한 발전의 위험에 관한 것입니다.

당연히 가장 간단한 봇부터 시작해야 합니다. 이를 위해 기억하십시오. 좋은 옛날 게임 3x3 필드를 사용할 때 Tic-tac-toe 작업의 주요 알고리즘을 스스로 찾으려고 노력하십시오. 오류없는 작업으로 이길 확률, 필드에서 조각을 배치하기위한 가장 성공적인 장소, 감소 필요성 무승부 게임 등.

수십 가지 게임과 자신의 행동을 분석하면 모든 중요한 측면을 강조 표시하고 기계 코드로 다시 작성할 수 있습니다. 그렇지 않다면 계속 생각하십시오. 만일을 대비하여 이 링크가 있습니다.

그건 그렇고, 아직 Python 언어를 사용하고 있다면 이 자세한 설명서를 참조하여 상당히 간단한 봇을 만들 수 있습니다. C++ 또는 Java와 같은 다른 언어의 경우 단계별 자료도 쉽게 찾을 수 있습니다. AI 생성 뒤에 초자연적 인 것은 없다고 느끼면서 브라우저를 안전하게 닫고 개인 실험을 시작할 수 있습니다.

4단계. 흥분

이제 상황이 데드 센터에서 진행되었으므로 더 심각한 것을 만들고 싶을 것입니다. 다음 리소스가 도움이 될 것입니다.

이름에서도 알 수 있듯 시간 낭비 없이 일종의 진지한 AI를 만들 수 있는 API입니다.

5단계. 작업

이제 AI를 만드는 방법과 사용할 내용을 이미 명확하게 이해했다면 지식을 새로운 차원으로 끌어올릴 때입니다. 첫째, 이를 위해서는 "머신 러닝"이라고 하는 분야에 대한 연구가 필요합니다. 둘째, 선택한 프로그래밍 언어의 적절한 라이브러리로 작업하는 방법을 배워야 합니다. 우리가 고려하고 있는 Python의 경우 Scikit-learn, NLTK, SciPy, PyBrain 및 Numpy가 있습니다. 셋째, 개발 중에는 . 그리고 가장 중요한 것은 이제 문제에 대한 완전한 이해와 함께 AI 문헌을 읽을 수 있다는 것입니다.

  • 게임을 위한 인공 지능, Ian Millington;
  • 게임 프로그래밍 패턴, Robert Nystorm;
  • Prolog, Lisp 및 Java의 AI 알고리즘, 데이터 구조 및 관용구, George Luger, William Stubalfield;
  • 계산 인지 신경 과학, Randall O'Reilly, Yuko Munakata;
  • 인공 지능: 현대적인 접근 방식, Stuart Russell, Peter Norvig.

그리고 예, 이 주제에 대한 모든 또는 거의 모든 문헌이 외국어로 제공되므로 AI를 전문적으로 만들고 싶다면 영어를 기술 수준으로 향상시켜야 합니다. 그러나 이것은 모든 프로그래밍 분야에 해당되지 않습니까?