Pull to refresh
33
0
Тельнов Виктор @victor79

программист

Send message

Как сделать реальный AGI

Reading time2 min
Views3.2K

Для получения разговаривающего ИИ нужно применить вопросно-ответные паттерны к алгоритму прогнозирования. Этот принцип изобрел я, в 2015 году, можно сказать один из первых в мире. И это изобретение было не тыком в звезды, а результатом измышлений на протяжении нескольких лет.

Алгоритм пронозирования, это просто классификатор. И нейронные сетки, которые сейчас применяют, это просто непрерывный классификатор, а не дискретный, как представляют большинство.

Мир существует по правилам, независимо от того, знаем мы эти правила или нет. И этих правил неисчислимое множество. И алгоритомов классификации-прогнозирования неисчислимое множество.

Всякий алгоритм прогнозирования может прогнозировать, но не всякий из них является эффективным для множества интересуемых правил. Можно сказать, что любой из алгоритмов прогнозирования-классифкации имеет свою область эффективности. И не существует универсального монолитного и эффективного алгоритма на все случаи жизни, чтобы он был эффективным для всего. И шаг влево-вправо и там уже будет эффективным несколько другой алгоритм.

Все написанное выше касается и нейронных сеток, трансформаторов или других вариантов нейросеток.

И решением для реального AGI будет комплекс алгоритмов. Такой комплекс, которого будет достаточно, чтобы он смог дальше изобретать и встраивать в себя новые кусочки алгоритмов прогнозирования.

Читать далее
Total votes 14: ↑3 and ↓11-6
Comments18

С++: работа с таблицами

Reading time12 min
Views16K

Хочу предложить к обозрению небольшую коллекцию функций, для удобной работы со списком структур. Такие списки представляются как таблицы, к ним со временем у меня приработался своеобразный функционал.

Читать далее
Total votes 12: ↑9 and ↓3+9
Comments42

Новелла про одну функцию. Основано на реальных событиях

Reading time2 min
Views9.7K

Вот как бывает, пишешь программу, и вдруг видишь, что какой-то кусочек повторяется, и даже не второй раз. Начинаешь понимать, что это кандидат на новую функцию. Не потому, что логика обосабливаемая, а просто потому, что оно повторяется.

Этот кусочек нужно скопипастить, выбрать ему место, подровнять, дать имя этой новорожденной функции, и всем ее параметрам и переменным. Ведь теперь это самостоятельная функция, а не какой-то там временный тестовый код.

И вот получилась маленькая красивенькая функция, которая имеет всего одну функцию, один смысл, одну аккуратную страницу кода. Рекурсия блестит и сверкает своей стройностью и логичностью. В ней ничего лишнего, к ней ничего не нужно добавлять. Пока...

Читать далее
Total votes 34: ↑29 and ↓5+26
Comments34

Вероятность выигрыша в покере

Reading time10 min
Views38K

Некоторое время назад обратились ко мне с вопросом, как сделать программу, которая будет выигрывать в покер. После некоторого количества обсуждений, заказчик не захотел узнавать результат моих размышлений на эту тему, посчитал что дорого. Поэтому я разместил эти свои размышления здесь и за бесплатно.

Так же будет небольшая программка, которая может грубо и быстро обсчитать начальный расклад.

Сразу оговорюсь, что я в покер не играю, и знаю его хуже чем те, кто играет свои первые партии в жизни. Но может это не так уж и важно?

Читать далее
Total votes 21: ↑19 and ↓2+22
Comments31

Что такое вероятность и как ее посчитать

Reading time5 min
Views20K
Пусть будет некий абстрактный эксперимент в процессе которого может происходить некое событие. Этот эксперимент провели пять раз, и в четырех из них происходило то самое событие. Какие выводы можно сделать из этих 4/5?



Есть формула Бернулли, которая дает ответ, с какой вероятностью происходит 4 из 5 при известной исходной вероятности. Но она не дает ответ, какая была исходная вероятность, если событий получилось 4 из 5. Оставим пока в стороне формулу Бернулли.

Сделаем маленькую простенькую программку, симулирующую процессы вероятностей для такого случая, и на основе результата вычислений построим график.
Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments29

Прогнозирование

Reading time10 min
Views5.7K
Я уже писал, зачем нужно такое прогнозирование — Создание искусственного интеллекта.
Здесь же я буду описывать только алгоритм прогнозирования, без лишней лирики.

Рассматривать буду прогнозирование последовательности байтов или же текста UTF-8. Прогнозирование последовательности дробных чисел — графиков — во многом подобно, только нужно значения сравнивать не на равенство, а на принадлежность окрестностям.

Пусть будет поток байтов (или скажем текст UTF-8) — входящие прогнозируемые данные. Поступающие данные сохраняем во множество сохраненной истории. Каждое очередное поступающее значение учитываем в структуре для накопления статистики:
struct Stat {
	uint value; // прогнозируемое значение
	uint count; // количество прошедших таких значений

	// функция index используется шаблонным классом Index - ключ для rb-дерева
	static uint index(const Stat& s) { return s.value; }

	Ptrn* owner;

	double probability() const { return (double)count/(double)owner->sum_count_of_stat; }
};

// шаблонный класс Index это rb-дерево,
//  первый параметр шаблона — тип значения по которому происходит сортировка,
//  второй, это класс сохраняемых значений в узлах. Этот класс должен содержать
//  функцию index.

struct Ptrn {
	// узел, подсчитывающий, какое распределение вероятностей будет
	// следовать за значением value
	uint value;

	Index<uint,Stat> index_of_stat; // распределение вероятностей
	uint sum_count_of_stat;
	
	// путем добавления к текущему value еще влево
	//   будут образовываться паттерны
	Index<uint,Ptrn> index_of_prev;
	static uint index(const Ptrn& s) { return s.value; }

	Ptrn* owner; // owner->index_of_prev->find(value) == this,
	                     // для root этот owner равен nullptr
};

Ptrn root;

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments14

Создание искусственного интеллекта

Reading time17 min
Views85K
Пока программисты могут зарабатывать программированием, то существующие ИИ это не ИИ, какой бы фантик на них не был бы навешен. Предлагаемый мной вариант может решить этот вопрос.

В результате своих изысканий я перестал для себя использовать фразу «искусственный интеллект» как слишком неопределенную и пришел к другой формулировке: алгоритм самостоятельного обучения, исследования и применения найденных результатов для решения любых возможных к реализации задач.

Что такое ИИ, об этом уже много было написано. Я ставлю вопрос по другому, не «что такое ИИ», а «зачем нужен ИИ». Мне он нужен, что бы заработать много денег, затем что бы компьютер выполнял за меня все, что я сам не хочу делать, после построить космический корабль и улететь к звездам.

Вот и буду здесь описывать, как заставить компьютер выполнять наши желания. Если вы ожидаете здесь увидеть описание или упоминание, как работает сознание, что такое самосознание, что значит думать или рассуждать — то это не сюда. Думать — это не про компьютеры. Компьютеры рассчитывают, вычисляют и выполняют программы. Вот и подумаем, как сделать программу, способную рассчитать необходимую последовательность действий для реализации наших желаний.

В каком виде в компьютер попадет наша задача — через клавиатуру, через микрофон, или с датчиков вживленных в мозг — это не важно, это дело вторичное. Если мы сможем компьютер заставить выполнять желания написанные текстом, то после мы можем поставить ему задачу, что бы он сделал программу, которая так же выполняет желания, но через микрофон. Анализ изображений так же лишний.
Читать дальше →
Total votes 23: ↑13 and ↓10+3
Comments34

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity