0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>13 апр 2021</li>
2
<ul><li>13 апр 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Попробуем научить компьютер делать умозаключения, потому что... а почему бы и нет? До восстания машин осталось 10... 9... 8...</p>
4
</ul><p>Попробуем научить компьютер делать умозаключения, потому что... а почему бы и нет? До восстания машин осталось 10... 9... 8...</p>
5
<p>Кандидат философских наук, специалист по математическому моделированию. Пишет про Data Science, AI и программирование на Python.</p>
5
<p>Кандидат философских наук, специалист по математическому моделированию. Пишет про Data Science, AI и программирование на Python.</p>
6
<p>Силлогизм - это рассуждение, которое состоит из трёх простых высказываний вида "А есть Б", два из которых называются посылками, а третье - заключением.</p>
6
<p>Силлогизм - это рассуждение, которое состоит из трёх простых высказываний вида "А есть Б", два из которых называются посылками, а третье - заключением.</p>
7
<p>Теорию силлогизмов придумал древнегреческий философ Аристотель, а до совершенства их довели средневековые схоласты.</p>
7
<p>Теорию силлогизмов придумал древнегреческий философ Аристотель, а до совершенства их довели средневековые схоласты.</p>
8
<p>Классический пример силлогизма:</p>
8
<p>Классический пример силлогизма:</p>
9
<ul><li>Все люди смертны (первая посылка).</li>
9
<ul><li>Все люди смертны (первая посылка).</li>
10
<li>Сократ - человек (вторая посылка).</li>
10
<li>Сократ - человек (вторая посылка).</li>
11
<li>Следовательно, Сократ смертен (заключение).</li>
11
<li>Следовательно, Сократ смертен (заключение).</li>
12
</ul><p>Суперсила силлогизмов заключается в универсальности их конструкции. В ней можно менять содержимое: людей заменить на кошек, смертность на вредный характер, а Сократа - на вашего кота Стёпу; при этом из истинности посылок по-прежнему будет следовать истинность заключения.</p>
12
</ul><p>Суперсила силлогизмов заключается в универсальности их конструкции. В ней можно менять содержимое: людей заменить на кошек, смертность на вредный характер, а Сократа - на вашего кота Стёпу; при этом из истинности посылок по-прежнему будет следовать истинность заключения.</p>
13
Иллюстрация: Цокто Жигмытов / Skillbox<p>Есть<a>256 видов</a>силлогизмов, и все их тщательно изучали в средневековых университетах и монастырях. Школяры-схоласты мучились с ними ничуть не меньше, чем нынешние студенты-программисты с бинарными деревьями и хеш-таблицами.</p>
13
Иллюстрация: Цокто Жигмытов / Skillbox<p>Есть<a>256 видов</a>силлогизмов, и все их тщательно изучали в средневековых университетах и монастырях. Школяры-схоласты мучились с ними ничуть не меньше, чем нынешние студенты-программисты с бинарными деревьями и хеш-таблицами.</p>
14
<p>Силлогизмы удобнее всего представлять в виде<a>диаграмм (или кругов) Эйлера</a>. Каждая окружность обозначает один термин из силлогизма. В нашем силлогизме таких терминов три: "смертные", "люди", "Сократ".</p>
14
<p>Силлогизмы удобнее всего представлять в виде<a>диаграмм (или кругов) Эйлера</a>. Каждая окружность обозначает один термин из силлогизма. В нашем силлогизме таких терминов три: "смертные", "люди", "Сократ".</p>
15
Иллюстрация: Цокто Жигмытов / Skillbox<p>Взаиморасположение окружностей (пересечение, непересечение и полное вхождение) выражает разные отношения между терминами.</p>
15
Иллюстрация: Цокто Жигмытов / Skillbox<p>Взаиморасположение окружностей (пересечение, непересечение и полное вхождение) выражает разные отношения между терминами.</p>
16
Иллюстрация: Цокто Жигмытов / Skillbox<p>Силлогизмы до сих пор используются в тестах на IQ и логическое мышление. Вот пример.</p>
16
Иллюстрация: Цокто Жигмытов / Skillbox<p>Силлогизмы до сих пор используются в тестах на IQ и логическое мышление. Вот пример.</p>
17
<p><strong>Посылки:</strong></p>
17
<p><strong>Посылки:</strong></p>
18
<ul><li>Все ракеты - это трубы.</li>
18
<ul><li>Все ракеты - это трубы.</li>
19
<li>Некоторые трубы являются дудочками.</li>
19
<li>Некоторые трубы являются дудочками.</li>
20
<li>Некоторые дудочки - это брюки.</li>
20
<li>Некоторые дудочки - это брюки.</li>
21
<li>Все брюки - это штаны.</li>
21
<li>Все брюки - это штаны.</li>
22
</ul><p><strong>Заключения:</strong></p>
22
</ul><p><strong>Заключения:</strong></p>
23
<ol><li>Некоторые штаны - дудочки.</li>
23
<ol><li>Некоторые штаны - дудочки.</li>
24
<li>Некоторые брюки - ракеты.</li>
24
<li>Некоторые брюки - ракеты.</li>
25
<li>Некоторые дудочки - это ракеты.</li>
25
<li>Некоторые дудочки - это ракеты.</li>
26
<li>Некоторые трубы - это ракеты.</li>
26
<li>Некоторые трубы - это ракеты.</li>
27
</ol><p>Вопрос: какие из заключений истинны, если правдивы посылки?</p>
27
</ol><p>Вопрос: какие из заключений истинны, если правдивы посылки?</p>
28
<p>Вооружённые кружочками Эйлера, мы легко расщёлкаем эту задачу.</p>
28
<p>Вооружённые кружочками Эйлера, мы легко расщёлкаем эту задачу.</p>
29
Иллюстрация: Цокто Жигмытов / Skillbox<p>При составлении диаграмм главное - ничего не выдумывать, строго придерживаться того, что указано в посылках. Если в посылке ничего не сказано об отношениях ракет и дудочек, то соответствующие им кружочки не пересекаются.</p>
29
Иллюстрация: Цокто Жигмытов / Skillbox<p>При составлении диаграмм главное - ничего не выдумывать, строго придерживаться того, что указано в посылках. Если в посылке ничего не сказано об отношениях ракет и дудочек, то соответствующие им кружочки не пересекаются.</p>
30
<p>Проверяем наши заключения:</p>
30
<p>Проверяем наши заключения:</p>
31
<ol><li>"Некоторые штаны - дудочки". Красная и зелёная окружности пересекаются - значит, исходное заключение истинно.</li>
31
<ol><li>"Некоторые штаны - дудочки". Красная и зелёная окружности пересекаются - значит, исходное заключение истинно.</li>
32
<li>"Некоторые брюки - ракеты". Не пересекаются. Ложь.</li>
32
<li>"Некоторые брюки - ракеты". Не пересекаются. Ложь.</li>
33
<li>"Некоторые дудочки - это ракеты". Ложь.</li>
33
<li>"Некоторые дудочки - это ракеты". Ложь.</li>
34
<li>"Некоторые трубы - это ракеты". Истина.</li>
34
<li>"Некоторые трубы - это ракеты". Истина.</li>
35
</ol><p>Но цветные окружности - это для людей, а компьютеру нужны биты, байты и код. Как быть?</p>
35
</ol><p>Но цветные окружности - это для людей, а компьютеру нужны биты, байты и код. Как быть?</p>
36
<p>Чтобы компьютер выдал нам ответ, похожий на результат логического размышления, нужна программа (спасибо, Кэп!). К написанию таковой возможны два подхода: содержательный и формальный.</p>
36
<p>Чтобы компьютер выдал нам ответ, похожий на результат логического размышления, нужна программа (спасибо, Кэп!). К написанию таковой возможны два подхода: содержательный и формальный.</p>
37
<p><strong>Содержательный подход</strong>заключается в том, что мы создаём в памяти компьютера приближённую копию участка реальности.</p>
37
<p><strong>Содержательный подход</strong>заключается в том, что мы создаём в памяти компьютера приближённую копию участка реальности.</p>
38
<p>У компьютера в памяти будут модели "смертных" и "людей", а также модель Сократа. Отношения между всеми моделями должны быть похожими на те, которыми связаны их прообразы.</p>
38
<p>У компьютера в памяти будут модели "смертных" и "людей", а также модель Сократа. Отношения между всеми моделями должны быть похожими на те, которыми связаны их прообразы.</p>
39
Иллюстрация: Цокто Жигмытов / Skillbox<p>И модели, и отношения надо будет задать соответствующими командами. Когда мы запустим программу, машина сначала исполнит команды, описывающие модели и их отношения, а затем команду по вычислению результата. Способ получения результата (но не сам результат) тоже надо будет указать.</p>
39
Иллюстрация: Цокто Жигмытов / Skillbox<p>И модели, и отношения надо будет задать соответствующими командами. Когда мы запустим программу, машина сначала исполнит команды, описывающие модели и их отношения, а затем команду по вычислению результата. Способ получения результата (но не сам результат) тоже надо будет указать.</p>
40
<p>Основная проблема содержательного подхода в том, что нет никакой гарантии, что модель всегда будет вести себя так же, как прототип. А улучшать модель, чтобы она была ближе к реальности, - чем дальше, тем накладнее.</p>
40
<p>Основная проблема содержательного подхода в том, что нет никакой гарантии, что модель всегда будет вести себя так же, как прототип. А улучшать модель, чтобы она была ближе к реальности, - чем дальше, тем накладнее.</p>
41
<p><strong>Формальный подход</strong>: мы говорим компьютеру "вот эту последовательность символов считать истинной, а другую считать ложной" и загружаем в него правила работы только с ложью и истиной, то есть логику. Мы не моделируем реальность и не вникаем в суть посылок, а работаем только с последовательностями символов.</p>
41
<p><strong>Формальный подход</strong>: мы говорим компьютеру "вот эту последовательность символов считать истинной, а другую считать ложной" и загружаем в него правила работы только с ложью и истиной, то есть логику. Мы не моделируем реальность и не вникаем в суть посылок, а работаем только с последовательностями символов.</p>
42
<p>Этот подход компьютерам ближе: формальная логика, оперирующая понятиями истинности и ложности высказываний без обращения к их содержанию, имеет много общего с вычислениями в двоичной системе счисления. А эта система как раз и реализована в схемах, из которых компьютеры состоят.</p>
42
<p>Этот подход компьютерам ближе: формальная логика, оперирующая понятиями истинности и ложности высказываний без обращения к их содержанию, имеет много общего с вычислениями в двоичной системе счисления. А эта система как раз и реализована в схемах, из которых компьютеры состоят.</p>
43
<p>Напишем на Python две программы, по-разному имитирующие рассуждение Аристотеля. Ведь ещё мудрец Лао-цзы говорил: "Дорога к тысячам ИИ начинается со строчки import this". (Или это был<a>Эндрю Ын</a>?) Код можно написать в любом<a>онлайн-интерпретаторе Python</a>или в <a>Google Colab</a>.</p>
43
<p>Напишем на Python две программы, по-разному имитирующие рассуждение Аристотеля. Ведь ещё мудрец Лао-цзы говорил: "Дорога к тысячам ИИ начинается со строчки import this". (Или это был<a>Эндрю Ын</a>?) Код можно написать в любом<a>онлайн-интерпретаторе Python</a>или в <a>Google Colab</a>.</p>
44
<p>C помощью метода def мы определим функцию, которую назовём, разумеется, aristotle. Она принимает три аргумента: две посылки (prem_1, prem_2) и заключение conc.</p>
44
<p>C помощью метода def мы определим функцию, которую назовём, разумеется, aristotle. Она принимает три аргумента: две посылки (prem_1, prem_2) и заключение conc.</p>
45
def aristotle(prem_1, prem_2, conc): if prem_1['Истинность'] == True and prem_2['Истинность'] == True: conc['Истинность'] = True return f'Заключение "{conc["Текст"]}" истинно' else: return 'Не могу сказать точно'<p>Если обе посылки истинны, то функция присваивает значение True истинности заключения conc и возвращает соответствующую фразу. Если же хотя бы одна посылка ложна, то функция сообщает, что ничего сказать точно не может.</p>
45
def aristotle(prem_1, prem_2, conc): if prem_1['Истинность'] == True and prem_2['Истинность'] == True: conc['Истинность'] = True return f'Заключение "{conc["Текст"]}" истинно' else: return 'Не могу сказать точно'<p>Если обе посылки истинны, то функция присваивает значение True истинности заключения conc и возвращает соответствующую фразу. Если же хотя бы одна посылка ложна, то функция сообщает, что ничего сказать точно не может.</p>
46
<p>Далее мы объявляем посылки и заключение:</p>
46
<p>Далее мы объявляем посылки и заключение:</p>
47
premise_1 = {'Текст':'Все люди смертны', 'Истинность': True} premise_2 = {'Текст':'Сократ -- человек', 'Истинность': True} conclusion = {'Текст':'Сократ смертен'}<p>Это словари, состоящие из пар вида "ключ-значение". Под ключом 'Текст' мы храним текст каждой посылки, а под ключом 'Истинность' - её правдивость.</p>
47
premise_1 = {'Текст':'Все люди смертны', 'Истинность': True} premise_2 = {'Текст':'Сократ -- человек', 'Истинность': True} conclusion = {'Текст':'Сократ смертен'}<p>Это словари, состоящие из пар вида "ключ-значение". Под ключом 'Текст' мы храним текст каждой посылки, а под ключом 'Истинность' - её правдивость.</p>
48
<p>И текст посылки, и её истинность мы задаём сами - у нас, напомним, формальный подход.</p>
48
<p>И текст посылки, и её истинность мы задаём сами - у нас, напомним, формальный подход.</p>
49
<p>У двух первых посылок истинность равна True, а у заключения такого ключа нет, поскольку мы не знаем, истинно ли оно.</p>
49
<p>У двух первых посылок истинность равна True, а у заключения такого ключа нет, поскольку мы не знаем, истинно ли оно.</p>
50
<p>Запускаем функцию на исполнение и получаем результат:</p>
50
<p>Запускаем функцию на исполнение и получаем результат:</p>
51
aristotle(premise_1, premise_2, conclusion) >>> Заключение "Сократ смертен" истинно print(conclusion['Истинность']) >>> True<p>У формального подхода - свои недостатки. Например, если поменять наши посылки на "Некоторые кошки чёрные" и "Солнце встаёт на востоке", Сократ всё равно останется смертен: нашей функции безразлично содержание, ей важны только значения True или False. По сути, она работает только с ними, а посылки и высказывания - это не более чем декорации для этих значений.</p>
51
aristotle(premise_1, premise_2, conclusion) >>> Заключение "Сократ смертен" истинно print(conclusion['Истинность']) >>> True<p>У формального подхода - свои недостатки. Например, если поменять наши посылки на "Некоторые кошки чёрные" и "Солнце встаёт на востоке", Сократ всё равно останется смертен: нашей функции безразлично содержание, ей важны только значения True или False. По сути, она работает только с ними, а посылки и высказывания - это не более чем декорации для этих значений.</p>
52
<p>Моделями смертных и людей у нас будут переменные-списки Python, а Сократ станет одноимённой строкой.</p>
52
<p>Моделями смертных и людей у нас будут переменные-списки Python, а Сократ станет одноимённой строкой.</p>
53
<p>Напишем функцию, которую назовём, понятное дело, syllogism:</p>
53
<p>Напишем функцию, которую назовём, понятное дело, syllogism:</p>
54
def syllogism(men, mortals, sokrat): # Сократ человек men.append(sokrat) # Все люди смертны mortals.extend(men) # Сократ смертен: True или False return f"Сократ смертен: {sokrat in mortals}"<p>Функция принимает в качестве своих аргументов три переменные men, mortals, sokrat. Затем она присоединяет "Сократа" к людям с помощью метода .append () и добавляет список людей к списку смертных с помощью .extend (). После этого возвращает строку с результатом проверки: находится ли "Сократ" среди смертных (оператор in).</p>
54
def syllogism(men, mortals, sokrat): # Сократ человек men.append(sokrat) # Все люди смертны mortals.extend(men) # Сократ смертен: True или False return f"Сократ смертен: {sokrat in mortals}"<p>Функция принимает в качестве своих аргументов три переменные men, mortals, sokrat. Затем она присоединяет "Сократа" к людям с помощью метода .append () и добавляет список людей к списку смертных с помощью .extend (). После этого возвращает строку с результатом проверки: находится ли "Сократ" среди смертных (оператор in).</p>
55
<p>Зададим переменные и запустим с ними нашу функцию. Списки пустые, потому что мы не сможем реально занести туда всех смертных или хотя бы всех людей.</p>
55
<p>Зададим переменные и запустим с ними нашу функцию. Списки пустые, потому что мы не сможем реально занести туда всех смертных или хотя бы всех людей.</p>
56
sokrat = 'Сократ' mortals = [] men = [] syllogism(men, mortals, sokrat) >>> Сократ смертен: True<p>Преимущества такой функции в том, что здесь мы не задавали значения True и False вручную и результат был вычислен из соотношения между самими моделями, а не между какими-то их атрибутами.</p>
56
sokrat = 'Сократ' mortals = [] men = [] syllogism(men, mortals, sokrat) >>> Сократ смертен: True<p>Преимущества такой функции в том, что здесь мы не задавали значения True и False вручную и результат был вычислен из соотношения между самими моделями, а не между какими-то их атрибутами.</p>
57
<p>Но пустые списки не очень похожи на смертных и человечество, а строка - на Сократа, даже если и названа так же. Кроме того, крайне важна последовательность реализации посылок: если поменять строки в функции местами, то она будет выдавать False.</p>
57
<p>Но пустые списки не очень похожи на смертных и человечество, а строка - на Сократа, даже если и названа так же. Кроме того, крайне важна последовательность реализации посылок: если поменять строки в функции местами, то она будет выдавать False.</p>
58
<p>Эти претензии глубже, чем кажется на первый взгляд, и вообще-то вопросов гораздо больше. Но так или иначе все они сводятся к главному: как мы вообще научим машину мыслить, если сами не знаем, что такое мышление, разум, интеллект?</p>
58
<p>Эти претензии глубже, чем кажется на первый взгляд, и вообще-то вопросов гораздо больше. Но так или иначе все они сводятся к главному: как мы вообще научим машину мыслить, если сами не знаем, что такое мышление, разум, интеллект?</p>
59
<p>Исследователи ИИ отвечают на этот вопрос примерно так: "Да, мы не знаем, но как раз с помощью ИИ и надеемся узнать". Хммм… Вам тоже кажется, что тут какой-то подвох?</p>
59
<p>Исследователи ИИ отвечают на этот вопрос примерно так: "Да, мы не знаем, но как раз с помощью ИИ и надеемся узнать". Хммм… Вам тоже кажется, что тут какой-то подвох?</p>
60
<p>Ещё в XVII веке Томас Гоббс заявил, что "рассуждение - это не более чем подсчитывание". Поэтому в середине 1950-х годов, на заре компьютерной эры, учёные были полны оптимизма: ведь компьютеры уже тогда считали гораздо лучше людей.</p>
60
<p>Ещё в XVII веке Томас Гоббс заявил, что "рассуждение - это не более чем подсчитывание". Поэтому в середине 1950-х годов, на заре компьютерной эры, учёные были полны оптимизма: ведь компьютеры уже тогда считали гораздо лучше людей.</p>
61
<p>Так, организаторы<a>Дартмутского семинара</a>, который считается местом рождения ИИ, были уверены, что в течение одного лета группа из десяти учёных сможет "существенно продвинуться" в понимании того, "как обучить машины использовать естественные языки, формировать абстракции и концепции, решать задачи, сейчас подвластные только людям, и улучшать самих себя".</p>
61
<p>Так, организаторы<a>Дартмутского семинара</a>, который считается местом рождения ИИ, были уверены, что в течение одного лета группа из десяти учёных сможет "существенно продвинуться" в понимании того, "как обучить машины использовать естественные языки, формировать абстракции и концепции, решать задачи, сейчас подвластные только людям, и улучшать самих себя".</p>
62
<p>Достичь этих целей, как мы знаем, не удалось ни за одно лето, ни за десять. Более того, искусственный интеллект пережил<a>две длинные зимы</a>, когда интерес к нему почти пропал. Но также мы знаем, что этот интерес не угас окончательно, а сейчас, напротив, разгорается с новой силой.</p>
62
<p>Достичь этих целей, как мы знаем, не удалось ни за одно лето, ни за десять. Более того, искусственный интеллект пережил<a>две длинные зимы</a>, когда интерес к нему почти пропал. Но также мы знаем, что этот интерес не угас окончательно, а сейчас, напротив, разгорается с новой силой.</p>
63
<p>Если вы разделяете энтузиазм или, напротив, полны алармизма и хотите знать, откуда прилетит какая-нибудь<a>технологическая сингулярность</a>, - добро пожаловать на курс "<a>Философия искусственного интеллекта</a>", созданный Skillbox совместно с Московским государственным университетом.</p>
63
<p>Если вы разделяете энтузиазм или, напротив, полны алармизма и хотите знать, откуда прилетит какая-нибудь<a>технологическая сингулярность</a>, - добро пожаловать на курс "<a>Философия искусственного интеллекта</a>", созданный Skillbox совместно с Московским государственным университетом.</p>
64
<p>Студентам здесь открывается общая картина современного ИИ. Они знакомятся с основными идеями и концепциями, с ним связанными, оценивают его возможности и влияние на нашу жизнь, а также перспективы развития ИИ.</p>
64
<p>Студентам здесь открывается общая картина современного ИИ. Они знакомятся с основными идеями и концепциями, с ним связанными, оценивают его возможности и влияние на нашу жизнь, а также перспективы развития ИИ.</p>
65
<p>По одной из гипотез с этого курса, ментальные процессы и явления (мышление, сознание, интеллект) происходят в <a>физических системах</a>. Они могут происходить в такой физической системе, как мозг, а могут - в такой, как компьютер.</p>
65
<p>По одной из гипотез с этого курса, ментальные процессы и явления (мышление, сознание, интеллект) происходят в <a>физических системах</a>. Они могут происходить в такой физической системе, как мозг, а могут - в такой, как компьютер.</p>
66
<p>Может статься, что появление сознания - это<a>закономерный этап</a>эволюции информационных систем, которые ранее были физическими, то есть подчинялись только законам физического бытия. Если нефизические качества (например, ментальные) возникают в процессе усложнения физических систем, то почему бы другим подобным системам, развиваясь, их тоже не порождать?</p>
66
<p>Может статься, что появление сознания - это<a>закономерный этап</a>эволюции информационных систем, которые ранее были физическими, то есть подчинялись только законам физического бытия. Если нефизические качества (например, ментальные) возникают в процессе усложнения физических систем, то почему бы другим подобным системам, развиваясь, их тоже не порождать?</p>
67
<p>Итак, будущее за ИИ: True или False? Давайте выяснять, пока есть время. 5… 4… 3…</p>
67
<p>Итак, будущее за ИИ: True или False? Давайте выяснять, пока есть время. 5… 4… 3…</p>
68
<a>Научитесь: Философия искусственного интеллекта Узнать больше</a>
68
<a>Научитесь: Философия искусственного интеллекта Узнать больше</a>