Комментарии 14
У меня такая же идея, я собирался как поступлю на второе высшее в следующем учебном году начать писать научную статью о развертывании нейронной сети из одного нейрона
В итоге я пришел к тому, что для этого потребуются нейроны с двумя состояниями. Таким образом я открыл для себя импульсные нейросети, хотя изначально они вроде как основаны на биологической правдоподобности — испускание нейроном электрического потенциала.
Попробую возразить. Нейроны с двумя состояниями - это бинарные сети, а не импульсные.
https://ru.wikipedia.org/wiki/Импульсная_нейронная_сеть
Импульсные сети - это развитие бинарных сетей, но как следует из названия, нейроны порождают импульсы с определенной длительностью, т е дополнительно к двум состоянием появляется длительность импульса во времени. У Вас этого нет. Все верно?
Наверное то, что пороговый интегратор - бинарный нейрон - верно. Да и бинарные сети это скорее более общее понятие, чем импульсные. Но я рассматриваю эту модель нейрона в контексте импульсной модели, как базовую модель импульсного нейрона, так как ее можно улучшить - если добавить задержки передачи сигналов и утечку, то получится импульсный нейрон
Я думаю над тем, как создавать знания в системе ИИ динамически, и как можно создать ИИ в принципе.
Если существующие сети не динамическое, то какие? В "принципе" это как?
---------------------
Вспомнил старый анекдот:
Приехал из провинции чел в Москву ходит у трех вокзалов и спрашивает прохожих:
"Скажите, как пройти к магазину ПРИНЦИП?"
Ему отвечают - Такого магазина нет.
Как нет?! - Кого не спросишь - ЭТО в Москве есть?
Отвечают - В ПРИНЦИПЕ все есть.
Оптимизация функции работает статически, то есть для инференса нейросети нужно обучить нейросеть на всем наборе данных. Динамически означает, что для обучения не нужно обучать нейросеть сразу на всем наборе данных. А в статье я говорю про инференс без обучения на всем наборе данных, про обучение по отдельным примерам из набора данных. Вообще я все подробно описал в пункте "как работает оптимизация".
"в приципе" означает то, что я думаю не над тем, как делать аппроксимацию данных, а над тем, как создать систему, обладающую интеллектом. Машинное обучение решает задачу аппроксимации, это выведение зависимости в данных
"в приципе" означает то, что я думаю не над тем, как делать аппроксимацию данных, а над тем, как создать систему, обладающую интеллектом
А что такое интеллект в Вашем понимании?
Интеллект — способность системы самостоятельно развиваться (адаптироваться).
В самом общем понимании интеллект означает способность к адаптации. По сути, адаптировать можно любую модель машинного обучения или даже просто любую программу. Но называть это интеллектом как-то не очень, поэтому я добавляю к этому понятию условие, что система должна уметь делать это самостоятельно. Может ли любая программа адаптироваться самостоятельно? - Нет. Программы адаптируют люди, соответственно, обычная аппроксимация - это не интеллект.
В самом общем понимании интеллект означает способность к адаптации.
В таком понимании , приведенные далее примеры соответствуют данному утверждению:
1) Регулятор температуры в инкубаторе обладает интеллектом, так как он адаптируется под изменение температуры, влажности и уровня СО2 в инкубаторе.
2) Если этот регулятор выполнен на микроконтроллере, то интеллект - это фактически программа ПИД регулятора, так как она обеспечивает возможность адаптации.
3) Усилитель низкой частоты с АРУ(автоматическая регулировка усиления) адаптируется под изменения уровня сигнала. Следовательно, усилитель обладает интеллектом.
Все верно?
Нет, не так. Если развести костер под инкубатором система контроля температуры контроллер ару, не включат систему пожаротушения. Не заставят инкубатор в сторону отойти.
У Вас самого ошибка или намеренная придирка, к упрощённому понятию адаптация.
Плюс в вашем примере главная ошибка это не учитывает то что со временем появляются новые обстоятельства
У меня самого нет ошибки. просто в моем примере про инкубатор не было учета дурака, который разведет под ним костер. Но это можно легко учесть и добавить звонок другу или в милицию или пожарным или вызвать скорую для того, кто разводит костер. При этом можно добавить электрошокер для защиты от дурака. Относительно танцев инкубатора. Ну это прикольно, очень интеллектуально.
Вы же сами понимаете, что инкубатор не обладает интеллектом. Точно так же, как и механизм слива в унитазе - да, он умеет адаптироваться к уровню воды в баке, но от этого у него интеллект не появляется. Вообще, если хотите возразить, то делайте это конструктивно, рассказав на какие факты вы опираетесь в своем суждении, иначе это превращается в спор ни о чем (без негатива).
Объясню по-другому. Попробуйте дать свое определение интеллекта или найдите в интернете. Если вы начнете углубляться в эту тему, то увидите, что этих понятий несколько десятков.
У этих всех понятий вы увидите одну общую черту - они все будут содержать такое понятие, как адаптация, в явном или неявном виде - то есть само слово "адаптация" там может не присутствовать, но оно будет представлено как-то косвенно или подменено аналогичным понятием в зависимости от области применения этого понятия интеллекта.
Исконно понятие интеллекта исходит из области биологии, так как интеллект - это прежде всего свойство живых организмов. Соответственно, понятие адаптации в понятии интеллекта тоже по умолчанию должно рассматриваться в контексте биологии. В биологии адаптация означает изменение системы (клетки, многоклеточного организма, популяции) под воздействием окружающей среды так, чтобы эта система могла выживать (определение выглядит как-то так).
Мы же рассматриваем технические понятия адаптации в технических областях: машинное обучение, программирование, физические устройства (инкубатор, унитаз). Понятие адаптации в этих областях отлично от понятия адаптации в биологии. В машинном обучении адаптация означает построение зависимости, то есть аппроксимацию данных. В программировании - постройка кода программы так, чтобы выполнялись какие-то конечные ветвления (условия). В области физических устройств - изменение программы поведения устройства в зависимости от сигналов с датчиков.
Как видите, ни одно из этих понятий адаптации не подразумевает, что система будет изменяться под воздействием окружающей среды. Система может изменяться только при вмешательстве человека, то есть что-то подкрутить гаечным ключом, дописать код или добавить новых данных в обучающий набор данных.
А теперь я напишу то же самое, что я написал в предыдущем сообщении: "Способна ли любая программа (или устройство) адаптироваться самостоятельно?" Я написал "нет". Но под адаптацией я имел в виду биологическое понятие, а не техническое. Это игра слов.
Если программа может изменять свое поведение на основе изменения температуры, это не значит, что сама эта программа изменяется (адаптируется). Это значит, что выполняется конечное ветвление (условие), то есть код (или физический механизм), который написал человек. От изменения температуры этот код сам себя не напишет. Точно так же как и физическое устройство само собой не изменится, чтобы соответствовать условиям окружающей среды (разведение огня под инкубатором).
Поскольку система в техническом понимании понятия адаптации не может изменяться сама, то я добавил слово "самостоятельно" в мое определение понятия интеллекта. Интеллект -способность системы самостоятельно адаптироваться. Но в контексте биологии слово "самостоятельно" добавлять не нужно, так как понятие адаптации в биологии уже подразумевает, что система делает это самостоятельно. Поэтому не нужно отождествляться техническое и биологическое понятие адаптации.
Аж целый пост написал, чтобы показать глубину моей цепочки взаимосвязей.
Данными примерами я попытался показать Вам, что адаптация возможно является необходимым признаком интеллекта, но не является достаточным.
Говорят, что для доказательства правильности гипотезы недостаточно и тысячи примеров, а для доказательства ошибочности, достаточно одного. Вот этот "один" пример я Вам и написал. Так как по-моему мнению, все Ваши рассуждения в статье, подобно Вашему определению интеллекта, поверхностные и бездоказательные.
Если Вы претендуете на новое слово в науке об ИИ, то неплохо бы указывать явно, что надумали Вы, а что и где( с указанием ссылок) Вы заимствовали из известных работ других.
Кое какие мысли "в слух". Возможно вам они будут полезны:
Знакомы ли вы с машиной Больцмана и с ограниченной машиной Больцмана (restricted Boltzmann machine, RBM) ? На мой взгляд это прямое переложение правила Хэбба, но на гораздо более обоснованном математическом фундаменте и гораздо более технологично.
Видел статьи, где люди проводят параллели между RBM и механизмом self-attention. По сути данный механизм также как и rbm "запоминает" паттерны. Думаю, что следующим шагом развития трансформеров вполне может стать новый метод обучения этого механизма по принципу rbm. А обучение rbm очень схоже с тем, что вы описываете - на первом шаге первый слой получает вход, и происходит вероятностное сэмплирование нейронами первого слоя сигналов для второго. Второй слой получает некую проекцию этого входа в пространство большей размерности (второй слой шире первого) . На втором шаге из этого пространства делается вероятностный сэмпл назад в первый слой, который сравнивается со входом. По результатам этих отличий происходит обучение не шагами, как в обычной сети, а скачком, но вероятностно, т к скорректированный первый слой именно сэмплирует из распределения данные. Таким образом всего за три шага сеть запоминает, но не конкретную копию, а некий образ, аналогично тому, как это происходит у человека. RBM можно стыковать слой за слоем, обучая послойно, получая при этом глубокую сеть, в которой также возрастает уровень абстракции от слоя к слою, как и в других глубоких сетях. И лишь в конце проводится подстройка всей сети. Для работы с вероятностями математика собрала уже очень большой арсенал. И он может позволить корректно реализовать задачу расширения емкости уже обученной сети.
Сам Джефри Хинтон, создатель метода обучения для rbm, говорит, что хочет перейти обратно от rbm к неограниченной машине. Но там не изобретено такого же эффективного метода. А на нынешнем железе с обучением по правилу Хэбба, она очень вычислительно не эффективна. Поэтому в свое время он это отложил в сторону. Там каждый нейрон связан с каждым, а не по слоям. Аналогично тому, как подобные структуры выглядят у человека. (Так называемые мини-колонки неокортекса)
Как мне кажется, трансформер в какой-то мере открыл путь к созданию динамической сети (здесь под этим я понимаю возможность запоминания нового в той же сети) за счет механизма cross-attention. По сути в уже обученную сеть таким образом можно подмешивать новые данные, новые слои и даже целые новые модальности. Пока что это сопряжено с довольно трудоемким дообучением, но если окажется, что этот процесс можно упростить, то не будет разницы, учите вы сеть на отдельных корпусах примеров или "на лету", т к всегда после инференса можно будет экономно провести коррекцию весов, не переучивая всю сеть целиком.
А на нынешнем железе с обучением по правилу Хэбба, она очень вычислительно не эффективна.
Верное замечание. Хеббовское обучение не эффективно для ИНС реализованных на вычислительных структурах с фоннеймановской архитектурой, т.е. на современных компах. Для его эффективной реализации требуются нейроморфные вычислительные структуры с вычислениями в памяти, асинхронностью, непрерывностью обучения, импульсным режимом, которые ближе к биологическим прототипам, см. этот комент с пояснениями и некоторыми ссылками. В дополнении к нему ссылки на работы по попыткам адаптации FEP (тут автор попытался доходчиво объяснить этот сложный математический фреймворк) к обучению ИНС 1, 2, 3. Но действительно эффективно, включая с точки зрения энергетики, это будет работать только для нейроморфных решений. Проверено самой природой, эволюцией с многомиллиардолетней историей отбора таких решений)
Импульсные нейронные сети: От обратного распространения ошибки к обучению Хебба. Идея о динамической нейронной сети