Small Data Science for Russian Adventurers
11.2K subscribers
296 photos
3 videos
13 files
699 links
БЕЗ ЧУЖОЙ РЕКЛАМЫ Авторский канал Александра Дьяконова (dyakonov.org)
машинное (machine learning) и
глубокое обучение (deep learning)
анализ данных (data mining)
наука о данных (data science)
ИИ (artificial intelligence)
математика (math)
и др.
ЕСТЬ ЧАТ;)
Download Telegram
#книга
Терренс Сейновски «Антология машинного обучения. Важнейшие исследования в области ИИ за последние 60 лет»
Очень интересная - про развитие ИИ, центральных персон (фотка в предыдущем посте взята оттуда), эволюцию их взглядов. Никакой математики - просто описание событий и оценочные суждения. Спектр тем огромен - от клеточных автоматов до операционных систем и теории сознания (про каждую что-то написано и даны иллюстрации), но больше «в историческом ракурсе». Из минусов - оригинал 2018 года (т.е. современные достижения здесь не отражены, кстати дословное название оригинала «Революция глубокого обучения»).
#видео
Несколько месяцев назад принял участие в беседе на «Силы тока». Видео вышло только сейчас. Многие вопросы были похожи на те, что задавал Роман Васильев, но я изо всех сил старался, чтобы это получились разные беседы. Ещё тут специфика в более широкой аудитории, поэтому многое я старался объяснить с нуля или говорить не очень строго. Больше я пока в последние полгода никаких интервью не давал;)
https://youtu.be/3DOoeYB_k3c
#интересно
Любопытный факт: как появились лотереи. Из книги (кстати, очень хорошей) Джордана Элленберга «Как не ошибаться. Сила математического мышления»
#мысли

В этом году Гугл выпустил свою "болталку" LaMDA, которая уже стала притяжением внимания: история об увольнении тестировщика, который стал утверждать, что модель обладает сознанием. Про это многие писали, но почему-то часто в стиле "да он ничего не понимает, это же обычный трансформер, какое ещё сознание". А между тем есть много любопытных моментов. Я напишу только про один из них - почему это "сумасшедший" появился именно сейчас.

GPT-подобные модели просто грамотно продолжали текст - и это вполне себе впечатляет, т.к. такой чёрный ящик может, например, генерировать рассказ. Диалоговые трансформеры ещё дообучают на корпусах диалогов и они вполне адекватно отвечают. Но вот в последних поколениях диалоговых систем пошли дальше.
Вот Вам вопрос:
- Вы любите кофе?
Ответ "зелёный" - неадекватный, а "Да" - адекватный, но он всё равно плохой, т.к. не учитывает контекст.
Ответ "Нет, от него чернеют зубы" - учитывает, но и он может быть не очень хорошим, т.к. довольно банальный.
А вот ответ "Только африканский, он более полезен, как выяснили учёные из Калифорнии" небанальный, т.к. параллельно сообщает интересный факт.

Так вот, разработчики из гугла придумали меру качества SSI = sensibleness + specificity + interestingness (это как раз оценка "адекватность + контекст + интересность"), набрали выборку с помощь асессоров с SSI-метками и дотьюнили языковую модель оценивать SSI (и не только её). Дальше оценку SSI (и другие) можно использовать при генерации...

Короче, LaMDA не просто продолжает диалог, а "старается" делать это правильно, контекстно и интересно (а ещё не грубит и использует факты из внешних источников - и это всё "хорошая выборка" + учёт человеческого восприятия + finetuning). Конечно тут появятся мысли о сознании - не каждый человек так отвечает;)

П.С. Некоторые тьюнинги немного всё портят и выдают робота, например тьюнинг на т.н. Groundedness - подтверждение из авторитетных источников, т.к. бот начинает кидать ссылки на Wiki в свои сообщения:) Но, думаю, это легко исправить.
#задача
В комментариях спросили,
может ли быть F1-мера около 1, а ROC_AUC маленьким?
Отвечаю, может даже ROC_AUC=0!

Пусть у нас задача бинарной классификации, упорядочим объекты по убыванию оценки вероятности за класс 1, пусть их метки при этом упорядочены так:
0 1 ... 1 (один ноль и N-1 единица).
Если порог бинаризации выбрать так, что все объекты относятся к классу 1, тогда
Precision = (N - 1) / N
Recall = 1
A ROC_AUC тут = 0.
#история
Забавно, что практически всё в математике появляется из решения конкретных задач (а не из абстрактных умозаключений).
Вот как появились смеси распределений, ну и потом отсюда всякие EM-алгоритмы?

Карл Пирсон подружился с зоологом Велдоном и его женой, и решил помочь им проанализировать данные о параметрах популяции крабов (там были ширина и высота лба). Ну и очень удивился, что данные не подчинены нормальному распределению. Он делает вывод, что популяция крабов неоднородна, а состоит из однородных подгрупп! Поверить, что каждая подгруппа ненормальная он не может, поэтому получаем смесь нормальных распределений...

Странно, что крабовый датасет не стал таким же известным как ирисы Фишера.
#история
Ещё про исходные практические задачи...

Есть такая задача Бюффона о вероятности пересечения брошенной иголкой стыка на дощатом полу (предполагаются, что все доски равной ширины). Когда решают, то вместо иглы - отрезок, вместо стыков - параллельные прямые с одинаковым шагом. Задача известная, поскольку в ответе фигурирует число pi, т.е. его можно так приближённо вычислять: "бросая иголку на пол".

Всегда думал, что эта задача родилась просто из размышлений о пересечениях, иголка и пол тут для наглядности, но оказалось, что в 18 веке была такая азартная игра: на плиточный пол кидали какой-то предмет и смотрели, находится ли он внутри одной из плиток или пересекает границы плиток. Сначала кидали монетки, потом стали кидать всё, что в голову придёт:)

П.С. Из интересного: задача поставлена в 1733 году, а решена в 1777 (хотя сейчас лёгкая для математика-первокурсника), привела к появлению "Стохастической геометрии".
Вопрос по Python. Что выведется, если в ячейке питон-ноутбука набрать {True: 'да', 1: 'нет', 1.0: 'возможно'}?
Anonymous Quiz
32%
{True: 'да', 1: 'нет', 1.0: 'возможно'}
3%
{True: 'да', 1: 'нет'}
12%
{True: 'да', 1: 'возможно'}
5%
{True: 'да'}
20%
{True: 'возможно'}
27%
ошибка
#соревнование
На кэгле когда-то было соревнование Abstraction and Reasoning Challenge, очень классное по постановке задачи - научиться на нескольких примерах, чаще даже на одном (причём человек это точно делает с лёгкостью). На картинке пример подобной задачи: по левой картинке сделать правую. Соревнование хотят продолжить - будет ARC2, сейчас собирают выборку, сделали даже такую песочницу для составления датасета. Организатор - автор популярных книг Франсуа Шолле. Не смотря на простоту, очень нетривиально, классно придумано и заставляет не просто "тренировать нейронки"! Можно почитать решение победителя первого соревнования.
#код
В прошлом опросе по питону в комментариях есть ссылки на хорошие ресурсы. Большинство из них я использовал, когда когда-то готовил занятия по питону. Из "странностей" языка моя любимая, пожалуй, эта -
a = [lambda: i for i in range(3)]
b = [f() for f in a]
print (b)
(ниже опрос). Легко объясняется, но совсем нетривиальна до тех пор, пока сам не столкнёшься.
#книга
Недавно на ArXive появилась книга Benedikt Ahrens, Kobe Wullaert "Category Theory for Programming"
https://arxiv.org/pdf/2209.01259.pdf
По стилю напоминает конспект лекций, но сделана аккуратно, есть задания.

Есть книга со схожим названием Б. Милевски, уже давно переведённая на русский язык (но написана совсем по-другому, больше в сторону популярного учебника):
https://rdf.ru/files/bartozh-teorcat.pdf
#опрос
Недавно были опубликованы результаты опроса специалистов по обработке естественного языка. Интересно, что на подавляющее большинство вопросов примерно половина отвечает "да", а другая половина - "нет", т.е. в среднем специалисты ничего конкретного сказать не могут. Вот на картинке пример - статистика ответов на вопрос о понимании языка современными моделями.

Из мнений, где всё-таки есть консенсус:
- крутые статьи будут выходить из индустрии, а не академии,
- все слишком помешаны на бенчмарках ("побьём SotA-у любой ценой"),
- нужно больше взаимодействовать со смежными дисциплинами,
- NLP даёт и будет давать хороший вклад в науку.
#интересно
В прошлом месяце фейсбук выпустил новую "болталку" - BlenderBot 3 (доступна в США). Об этом уже многие писали, но пропустили одну фишку, которая мне понравилась. Бот состоит из модулей, каждый из которых решает определённую задачу. Например, есть модуль определения, нужно ли гуглить в интернете, чтобы ответить на вопрос пользователя. Есть модуль, который составляет запрос и гуглит. Такой же механизм применяется для определения: нужно ли что-то сохранять в память, что сохранять, нужно ли читать из памяти и что читать. А теперь самое интересное: при беседе можно понять, почему был дан такой ответ: какие модули были задействованы и как (пример на рисунке).

В целом, это неплохая идея для интерпретации сложных моделей: разбивать их на понятные блоки и показывать их функциональность по запросу.
#статистика
Топ российских AI-исследователей по версии этого ресурса. А самая цитируемая статья, у которой только российские авторы: Artem Babenko, Anton Slesarev, Alexandr Chigorin & Victor Lempitsky "Neural Codes for Image Retrieval" (ECCV 2014).
#термин
Extreme learning machine (ELM) - это нейросеть, в которой все слои, кроме последнего случайно инициализированы и фиксированы, а последний обучается (т.е. "логистическая регрессия" на случайных признаках). До 2012 года было целое научное направление под руководством Guang-Bin Huang из Сингапура, которое занималось развитием таких методов. В частности, были доказаны, что они являются универсальными аппроксиматорами. На основную статью Guang-Bin Huang 2006 года более 12000 ссылок.

Потом (после 2012) нейронки смогли относительно быстро обучать "целиком" и направление ELM забылось... Знаменитый профессор уже 7 лет не выпускает крутых статей, но у него есть сын (я так думаю: фамилии совпадают и он начинал в его научной группе), который в глазах современников превзошёл отца - Gao Huang. Он соавтор ансамблей Snapshot ensembles, концепции Stochastic Depth и, наконец самое известное, сети DenseNet (более 28500 ссылок на статью).