Введение в искусственный интеллект
331 subscribers
63 photos
2 videos
170 links
Просто об искусственном интеллекте и его возможностях. Помогу разобраться в базовых понятиях и создать собственную нейросеть. Рассказываю, что у ИИ под кожей.
Елена Михалькова
Download Telegram
Градиентный градиент

Зачем? Чтобы подобрать оптимальные веса (коэффициенты k и b) для модели машинного обучения, основанной на регрессии.
Как? Начну издалека 😁 Даже пришлось разбить этот пост на две части.
Давайте вспомним сначала классификацию на основе линейной регрессии. Пусть у нас есть объекты, принадлежащие нескольким классам. Например, у нас есть два вида цветочков - ирисов. У каждого ириса возьмем один параметр, например длина чашелистика. Игрек будет класс, например 0 или 1. Представим координатную плоскость. По оси X отложим длины чашелистиков, по Y - классы. Теперь строим такую прямую, которая наиболее близко проходит к полученным точкам. Если у нас появляется новый ирис, то меряем ему длину чашелистика и по коэффициентам прямой (k и b) считаем новый игрек. К какому числу он ближе (0 или 1), к такому классу его и относим.
Теперь вспомним логистическую регрессию. Там вместо прямой используется кривая: сигмоида. Сначала наугад подбираем коэффициенты k и b. Потом считаем новый игрек и суем его в функцию сигмоиды. Выглядит странно: какие-то левые коэффициенты, в какую-то сигмоиду. Сделано это для того, чтобы вместо регрессии в виде прямой получить регрессию в виде буквы s, потому что она своими хвостиками лучше прижимается к массиву точек. В линейной регрессии есть только одно решение. А логистическую можно растягивать в разные стороны и, более того, не обязательно считать именно идеальное приближение к массиву. Пусть она будет какая-то вся кривая и недоделанная, но зато хорошо будет предсказывать классы.
Как будем растягивать букву s? Нам нужно, чтобы наша s прижималась к точкам, т.е. чтобы суммарное расстояние от нее до точек сокращалось. Сумма расстояний от точек до кривой - это типо ошибка; насколько наша кривая ошибается в оценке класса. Ее обычно обозначают игреком с треугольной шляпкой: ŷ (читается “уай хэт”) - еще такая запись в статистике означает предсказанное моделью значение. А реальный класс, представленный 0 или 1, это наши тру (true - истинные) игреки. Функция затрат, или стоимости (cost function “кост фанкшон”, cost - англ. стоимость) - это сумма тру игреков минус сумма уай хэтов. Тру игрек у нас дано. В уай хэтах тру иксы мы тоже знаем. Остаются наши неизвестные линейные коэффициенты k и b, которые надо подогнать. Формула у функции затрат такая: Cost Function (J) = Σ(y - ŷ) = Σ(y - (k * x + b)). J - патамушта якобиан - определитель матрицы Якоби. Не углубляясь в линейную алгебру, нам надо узнать по нашей функции потерь, как корректировать k и b дальше. Вот тут-то и нужен градиент.

#база
👍3
Градиентный градиент - 2

Что такое градиент функции? (Долго же я подбиралась к этому вопросу.) Вот у нас есть функция с двумя или более переменными (у нас пока с двумя - k и b). Чтобы найти ее минимум, нужно взять производную. Если переменных две и более, то берем частную производную, а минимум ищем по градиенту. Точнее, будем искать не сам минимум, а направление, в котором надо его искать. Градиент - это все значения, которые принимает частная производная функции со множеством переменных (у нас пока две - k и b), представленные в виде таблицы. И эта таблица - тоже, кстати, вектор, а градиент является вектор-функцией. Если взять все четыре признака ирисов, то в градиенте-"таблице" у нас будет k1, k2, k3, k4 и b.
Как это в итоге выглядит? Как n-мерная поверхность. В нашей задаче поиска весов (коэффициентов) логистической регрессии у такой поверхности есть минимумы и максимумы. То есть она так изгибается, что образует вогнутости и выпуклости. Они могут быть локальными, но где-то обязательно есть большой глобальный минимум. Его-то нам и надо найти.
Если в какой-то точке мы посчитаем частные производные по k и b, и потом изобразим их в виде вектора, который исходит из этой точки, то стрелочка вектора укажет направление наибыстрейшего возрастания функции (то есть как нам быстрее дойти до максимума). А нам нужен минимум, следовательно, мы будем топать в обратную сторону. Чтобы нам не притопать в локальный минимум или не перешагнуть его, выбирается параметр - learning rate (темп обучения, “лёнин рейт”).
В этот раз делюсь дополнительными материалами на эту тему.
Вот так выглядит градиент функции x^2-xy в виде поля векторов.
Вот здесь отличный тьюториал от Академии Хана на тему векторных полей - как их создавать и интерпретировать.
Вот здесь тьюториал тоже от Академии Хана на тему градиента.
Ну и я сама немного порисовала графиков к этим тьюториалам - вдруг что-то получше прояснят.
А теперь по поводу того, как градиент реализуется в логистической регрессии. Кто мой пост про логистическую регрессию читал, тому знаком мой колаб-ноутбук. Так вот я там добавила комментариев к dw, db и learning rate. Это и есть программная реализация градиента в логистической регрессии.

#база старый #notebook с новыми комментариями
👍2❤‍🔥1
Дорогие подписчики!

Я эту неделю вся в мыле делаю пакет документов для своей магистратуры по искусственному интеллекту. Но надеюсь выпустить посты, оставшиеся с ноября, в ближайшее время! Уиии

А пока немного текущих новостей:

1. Мы зачислили всех, кто подал документы на повышение квалификации после интенсива. Ждите письма с деталями по тесту.

2. Если вы тоже были на интенсиве, но забыли или долго раздумывали подать ли документы, напишите мне на корпоративную почту до 10 декабря e.v.mikhalkova@utmn.ru . Сделаем ещё одно зачисление в этом месяце.

3. Всем, кто НЕ подаст доки на удостоверение до 10 декабря, я скину на почту что-то типа сертификата участника, подписанного мной. Юридической силы особо не имеет, но можно приложить к портфолио. Считается типа как грамота или диплом участника.

4. Какую тему взять на следующий интенсив? Пишите в комментарии, а потом я сделаю голосовалку.
❤‍🔥5
Какие профессии появляются?

12 декабря я буду выступать на научной конференции в НИУ ВШЭ с докладом “Компьютерный историк, лингвист и филолог: есть ли такие профессии и влияет ли на них развитие искусственного интеллекта?”. Тема доклада возникла не случайно. Все опять сводится к той самой магистратуре, которую я пытаюсь открыть в СоцГуме: “Искусственный интеллект в истории, лингвистике и филологии”. Мы с коллегами пошли искать, что сейчас нужно на рынке профессий. После анализа вакансий на hh.ru кое-что оказалось довольно тривиально:
😒 IT-сектору нужны hard skills (главное, чтобы вы кодить умели; LeetCode наше все),
😅 а гуманитарии нужны как универсалы там, где надо общаться с людьми (soft skills), и неважно, учили вы историю или лингвистику.
А еще “по рефералу” вас могут взять.. да хоть кем. Если речь не идет о безопасности. Хирургом без образования вы не станете 🙂 Тем не менее есть и тренды, на стыке IT и “чего-то гуманитарного”. ИИ на эти процессы тоже влияет.
Новая профессия № 1: компьютерный (цифровой) лингвист. Профессия редкая и с нечеткими требованиями, но вакансии появляются. И высшее образование по ней уже тоже можно получить. Чем занимается компьютерный лингвист, я писала тут. Я все еще считаю, что это фиксик 🙂
Новая профессия № 2: дизайнер разных элементов в компьютерных играх. И я не про гейм-дизайнера, потому что для этого вы должны быть художником, а не историком или филологом. В gamedev филолог может быть дизайнером нарратива, когда нужно сделать локализацию. А историк может быть художником по технике, постройкам, костюмам, если нужна историческая достоверность. Историков активно зазывают в WarGaming. Это компания, которая разрабатывает World of Tanks и World of Warships.
Относительно новая профессия № 3: контент-менеджер. Пару лет назад он назывался исключительно копирайтер. С приходом ChatGPT нужда в копирайтинге отмирает. Зато появляется спрос на написание отзывов на Вайлдбериз, как будто бы вы купили товар и очень им довольны. А потом заходите под другим аккаунтом, и вы снова довольны. И так по колесу сансары. Хотите, сами пишите; хотите, юзайте ChatGPT. Фабрика контента есть и в соцсетях, и в мессенджерах. Хорошо как подработка.
Новая профессия № 4: разметчик данных, аннотатор. С расцветом ИИ возрастает спрос на датасеты - структурированные наборы данных, где каждому экземпляру присвоен класс. Компании обычно предлагают размечать датасеты на облачных платформах в качестве фриланса. Вроде бы и ок - студенты могут подзаработать. Однако тут есть обратная сторона медали: некоторые датасеты содержат тяжелый, негативный контент. Даже если разметчику есть 18 (или 21), этот контент в большом количестве (а некоторый и в малых дозах) может конкретно испортить психику. А как, вы думаете, алгоритмы Ютуба научились определять, содержит ли видео недопустимый контент? Ютуб аутсорснул разметку данных в Индию и Африку. Чем недопустимее контент, тем выше заработок у аннотатора.
Чтобы не заканчивать на печальной ноте, перечислю хорошие новые профессии, без подводных: проектный менеджер, креативный создатель контента (который лучше сделает, чем ChatGPT), разработчик онлайн-курса, промпт-инженер, специалист по поиску информации, улучшению поисковой выдачи, настройке языковой модели. В таких профессиях почти не требуется hard skill разработчика, зато требуется умение выражать идею и формулировать запрос. И как пишет автор канала Gershuni: "Де-иификация. Фраза «этот пост написал человек» будет показателем качества и персонального подхода."

#эссеиистика
🔥8
Как выбрать метрику по душе
Смотря, какая душа…

На данном этапе развития технологий в искусственном интеллекте все еще важно, зачем разрабатывается тот или иной алгоритм. (А когда будет неважно? Когда мы достигнем AGI - artificial general intelligence, которая одна решает любые интеллектуальные задачи на уровне студента.) Например, можно сделать алгоритм, который распознает на геоснимках крыши домов, чтобы оценить плотность застройки. Или распознает числа на фото, чтобы определять номера машин. В случае с человеком-экспертом, который выполняет задачу, руководство выставляет KPI (key performance indicators - ключевые показатели эффективности): “а собери-ка ты мне, Василий, минимум 10 штрафов в день..” Причем, если водители вдруг начнут лучше соблюдать ПДД, KPI все равно надо закрывать. То есть мы не можем быть уверены: то ли эксперт ленится, то ли ситуация на дороге улучшилась. А вот с системой так не получится - она всегда беспристрастно действует по алгоритму и не может хакнуть свою метрику по определению, т.к. не обладает волей. Зато метрику может хакнуть разработчик: это когда система дает на тестировании высокий результат, а на практике оказывается, что метрика не показывает желаемую эффективность. Поэтому в каждой задаче важен дизайн метрики.
Классификация (как в примере с крышами и цифрами) - это одна из типичных задач в ИИ. Разберем классическую метрику в области классификации - precision. Ее иногда переводят как “точность”, но т.к. есть еще accuracy (Экьюраси или акУраси) - тоже точность, то precision переводят как пресИжн. Итак, нам нужны крыши. А все остальное будет НЕ-крыши. Что нам самое главное? Сколько из объектов, которые наш алгоритм записал в крыши, реально являются крышами. Но тут возникает проблема хацкинга: хитрый разработчик напишет программу, которая найдет одну реально крышу и на том остановится. А дальше хоть трава не расти. Тогда посчитаем, сколько из реально крыш на наших фото были определены как крыши - это будет метрика recall (рекОл, полнота). Если всего одна из ста, то это немного. Но хитрый разработчик опять нас обошел: он записал все объекты на изображении в крыши и получил стопроцентный рекол. Тогда берем среднее арифметическое пресижена и рекола. Но тут еще проблема: пресижен и рекол по сути две разные сущности - в числителе у них крыши, а в знаменателе - ну вы сами поняли. Среднее арифметическое не делает различий, если какая-то из двух метрик показывает более высокий результат. А вот среднее гармоническое тем выше, чем выше обе метрики. Называется такая метрика f-score (эфскор). Кстати, помимо пресижена и реколла, в эфскор можно пихать сколько угодно еще метрик. Работать будет одинаково.
Но что если у нас в датасете нет размеченных объектов, кроме крыш? Тогда вместо пообъектной оценки, будем применять попиксельную: истинно-положительный результат это если пиксель, маркированный как крыша, действительно принадлежит объекту “крыша”; истинно-отрицательный результат - если пиксель, немаркированный как крыша, действительно не принадлежит объекту “крыша”. Хьюстон, у нас снова проблема: крыш то немного по сравнению с НЕ-крышами. Вот поэтому в нашей задаче мы будем применять эфскор только к классу “крыша”.
Еще о метриках можно почитать тут.

#база
👍3
Вот так показывает эффективность среднее арифметическое: если x будет 100, а y - 0, то среднее арифметическое равно 50.
👀3
В среднем гармоническом, если x = 100, а y = 0, то среднее гармоническое тоже = 0.
🦄3
Следующий интенсив

Я определилась с датами следующих интенсивов: 17 и 24 декабря. 17-го снова будем разбирать основы Питона, а вот 24го...
Почитала я комментарии к посту: во всех них есть одна общая тема - компьютерная лингвистика. Поэтому она и будет общей темой занятий 24 декабря. А вот что затронуть - какие области CL - жмякайте в опросе выше.
❤‍🔥4
А между тем я на конференции в НИУ ВШЭ (Москва)
17👍1
Зашла на ВДНХ, а там прямой эфир снимают
This media is not supported in your browser
VIEW IN TELEGRAM
2💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Ну и вот Яндекс доставка - пылесосит в местную пиццерию
👏3😱3👍2🥰2
Введение в искусственный интеллект
Темы занятий по комп. лингвистике
Интенсив 17 и 24 декабря

Ну что ж, можно подвести итог голосования. Победила тема "Дистрибутивная семантика". Ее и буду разбирать на интенсиве 24 декабря. Это будет второй трек. А первый трек пройдет 17 декабря и будет посвящен основам питона. Так что, если вы их уже знаете, то вам там будет скучно - регайтесь только на второй трек.

(Тем, кто зарегался через СоцГум на повышение квалификации, форму заполнять не надо.)

Ссылка на регистрацию. 📝

#ниипетпроект
👍1
Смена локации интенсивов

Уважаемые друзья! Интенсивы 17 и 24 декабря пройдут в аудитории 217 (аудитория ВТБ) в ФЭИ (ул. Ленина, 16).

Скоро увидимся! 🤩
👍6
Интенсив 24 декабря

Уважаемые участники интенсива!
Напоминаю, что интенсив по дистрибутивной семантике пройдет 24 декабря 2023 с 10:00 до 17:00 в ФЭИ (Ленина, 16), ауд. 217 (аудитория ВТБ). При себе иметь ноутбук или планшет (или даже смартфон), который позволяет запускать и редактировать ноутбуки Google Colaboratory, а также любой документ, удостоверяющий личность.

Кто тоже хочет пойти, но не записался, форма регистрации тут. (Я сейчас обнаружила, что она у меня была закрыта несколько дней. Регаться можно аж до субботы, т.к. список на охрану я буду распечатывать утром в воскресенье.)

See you soon! 😎
👍2🥰2
Кто-то забыл мышь 🐭 На последней парте в 217 ауд.
😢4👍1
Уважаемые участники интенсива!

Я таки только завтра разошлю все материалы. Конец семестра - навалилась проверка всяких разных работ. 🥴

Ну а всем-всем-всем - небольшой анонс, что будет в канале в этом году.
1. Пост, повисший с ноября: стоит ли обращаться к ИИ за диагнозом?
2. Подводим итоги года.
3. Кружочек с новогодним поздравлением от Винни-Пуха меня.
4. Анонс январских постов. На каникулы не пойду - это скучно. Буду писать, пока пишется 😜
10👍1
Самодиагностика с помощью генеративного ИИ. Часть 1
Пост пришлось разбить аж на три части, но тема такая, что коротким очерком не обойдешься. Последняя часть комментарии - в тексте они даны в квадратных скобочках.

На конференции в НИУ ВШЭ, где я рассказывала про профессию цифрового историка, лингвиста и филолога, был целый доклад, посвященный рискам использования генеративных нейросетей в здравоохранении [1]. Рисков, конечно, много, и речь, конечно, не о каких-то очень абстрактных вещах, вроде “нас завоюет Скайнет” (что тоже исключать нельзя 🙂). В общем тема активно обсуждается. Я в этом посте сфокусируюсь на одной грани: медицинская самодиагностика неспециалистом при помощи генеративного ИИ (ChatGPT и подобные ей) [2].
Медики уже давно используют алгоритмы для постановки диагноза. Когда появились нейросети, они и их быстро освоили [3]. (А еще голубей [4].) Параллельно Интернет наводнили блоги и форумы, где пациенты и их родственники обсуждают диагнозы, врачей, опыт лечения [5]. У человека, который идет на форум обсудить свой диагноз, иная цель, чем у того, кто идет в поликлинику. Это особый вид поиска, не совсем чтобы истины. У нас в лингвистике и смежных науках есть целое обширное поле исследований: медицинский дискурс [6]. Когда человек приходит в поликлинику, то он из самостоятельного, взрослого, красивого и умного индивида превращается в кусочек биоматериала, о котором судят некие специально обученные и награжденные дипломами и статусами высоколобые эксперты (все, наверно, очень здоровые, тк умеют соблюдать свои рекомендации). Да тут же целое поле для внутренних и внешних конфликтов!.. И если есть возможность избежать хотя бы части из них, то почему бы и нет? Пусть при этом качество диагностики, возможно, снизится. Берем ChatGPT, пишем симптомы и получаем диагноз.
В ботостроении (разработке чат-ботов) есть понятие “счастливый сценарий”. Это когда общение клиента с чат-ботом идет по плану. Счастливый сценарий постановки диагноза такой:
1⃣ Бот говорит по-человечески (высокий уровень имитации речи - как у ChatGPT. например) и обладает достаточными знаниями для постановки диагноза.
2⃣ Человек общается с ботом искренне, честно.
3⃣ В своем сообщении человек успешно выразил намерение получить диагноз.
4⃣ Человек хочет, чтобы общение с ботом состоялось вне рамок медицинского учреждения, анонимно, без “коммуникативного прошлого” (это когда вы несколько раз ходите к одному и тому же врачу).
5⃣ Человеку очевидно, что он говорит с ботом, который не несет ответственности и не дает гарантий.
6⃣ Человек намерен использовать полученную информацию как дополнение к тому, что сказали специалисты, и поделится ею с ними (ну или хотя бы тем фактом, что советуется с ИИ).

Примеры, когда все прошло хорошо и даже лучше, чем хорошо, уже есть в СМИ [7]. Сбер даже разработал отдельного ИИ-диагноста, которого рекомендуют профессиональным врачам [8]. Да и разработчики ботов, наученные на горьком опыте, когда их боты сходили с ума и поливали собеседников грязью, научились возвращать бота в счастливый сценарий. Например, ChatGPT обязательно напишет вам отказ от ответственности, если вы пожалуетесь на свою болячку [9]. Также, вроде бы, боты стараются не воровать и не копить информацию, которая может вас скомпрометировать. По крайней мере, их разработчики так утверждают (“А зачем нам это?” А и правда, зачем? 😁).

#эссеиистика
👍3
Самодиагностика с помощью генеративного ИИ. Часть 2
А теперь посмотрим, что может пойти не так?

Оставим за скобками ситуацию, когда человек не честен или генеративная модель плохо обучена, т.к. это мы проверить не можем. Рассмотрим веру в истинность - сциентизм. ИИ-технологии “красиво вошли в нашу грешную жизнь” (говоря словами из песни Меладзе). В эйфории от их успехов можно переоценить их качества. Нарратив успеха разных технологий свойственен СМИ и сайтам компаний: “мы применили научный подход, затем внедрили, получили коммерческий успех и довольных клиентов”. Это ошибка выжившего: пока нет свидетельств анти-чуда, мы будем читать об успешно поставленных диагнозах. Когда читатели попривыкнут, в СМИ появятся новости об “анти-чудесах” (как с Теслой, например [10]).
Кроме этого, боты склонны “выдавать «льстивые» ответы, которые нравятся пользователям, но при этом не являются точными” [11]. Этот феномен называется sychophancy (сайкофЭнси) - подстраивание модели под человека, его установки.
Веру вселяет и использование ботом терминологии, и частичное попадание в диагноз, поставленный врачом. И поскольку у пользователя нет цели проверить бота, протестировать его, например найти первоисточник (научную публикацию о болезни), то остается только верить. Кстати, первоисточник найти в самом ИИ, скорее всего, не получится. Боты все помнят очень примерно - как человеку трудно вспомнить точное-преточное название одной из тысяч статей, которые он когда-либо прочитал.
Генеративные модели можно оценить по двум параметрам: perplexity (перплексность) - предсказуемость ответа на конкретный промпт (от англ. prompt - подсказка, запрос), и entropy (энтропия) - непредсказуемость ответа, новая информация. Поэтому генеративные модели не являются в полной мере вопросно-ответными системами, а их ответы - это всегда вероятностное предсказание. Мы получаем самый вероятный ответ, но мы не можем оценить уверенность модели и варианты, которые попали на второе место и ниже. Создаётся информационный пузырь из ответов, которые никогда не попадут в результат. Хотя это и совпадает с целью диагностики, ведь она требует только один - предположительно правильный - диагноз.
С отсутствием коммуникативного прошлого тоже все непросто. Коммуникация с ботами - это общение со специалистами: разработчиком, промпт-инженером, сисадмином, ресечером 🥴. Просто она массовая, мало обсуждается, мало описана, непрозрачна. Бот - это медиум, посредник, мостик.
ВОЗ [12] и я 😀 рекомендуем: пользоваться ИИшкой для диагностики можно, но осторожно. Что следует делать параллельно с общением с генеративным ИИ:
👆 простым пользователям - полагаться на медицинских специалистов, повышать собственную ИИ-грамотность (например, читать наш канал и ходить на наши интенсивы 😁) и грамотность друзей и знакомых - быть занудой, чесать всем мозги, что ИИ - это не халява;
обществу (человечеству в целом) - развивать ИИ-этику и ИИ-регулирование. Иначе мы-таки построим Скайнет.

#эссеиистика
🫡2👍1👌1