человек наук
3.76K subscribers
380 photos
18 videos
270 links
Красота окружающего мира глазами учёного. По всем вопросам пишите @science_boy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Учу нейросети рисовать котиков

Для создания изображений используется генеративно-состязательная модель. При таком подходе тренируется две нейросети: генератор и дискриминатор. Дискриминатор учится отличать настоящих котов от случайных изображений. Генератор старается запутать дискриминатор и учится генерировать изображения, которые будут приняты за настоящих котов

Каждый кадр здесь – это одна эпоха обучения нейросети. В процессе у генератора получается генерировать всё более правдоподобных котиков

#программирование
This media is not supported in your browser
VIEW IN TELEGRAM
Иногда я учу нейросети не только рисовать котиков, но и делать что-то полезное

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

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

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

Видео: https://www.youtube.com/watch?v=a-Wc_bmsAX4
Слайды: https://docs.google.com/presentation/d/1koglWAz1E4uGIZkARomT4OtknWc8N3Ydz2BZjJqIDfY/edit?usp=sharing

#видео #биология #программирование
Пока непонятно, что именно изменят технологии, подобные ChatGPT (есть подозрение, что примерно всё). Но я уже вижу, что они изменили – образование. Буду говорить про сферу IT, так как я наиболее близок к ней, но уверен, что и в других произойдёт что-то похожее, если ещё не.

Очень показательный пример, где ChatGPT уже несравненно лучше других технологий – помощь с ошибками при программировании. Ошибками в компьютерном смысле – когда программа не работает и показывает страшное сообщение. Они возникают десятки раз за день при работе программистом и сотни при обучении. Как с ними справлялись раньше?

Интеллект или помощь коллег. Когда деревья были большими, а по земле ходили динозавры, люди понимали устройство компьютеров и в случае, когда что-то идёт не так, исправляли ошибки или разбирались, какие биты в памяти оказались повёрнутыми не туда. Если этого сделать не получалось, можно было подумать ещё недельку или спросить помощь у более опытных коллег. Многие программы приходилось писать самостоятельно, потому что их ещё просто не существовало или не было способа обмена
Книги и документация собирали и обобщали информацию. Если что-то сломалось – читай документацию, чтобы глубже понять технологию, попутно думая о своей проблеме и примеряя к ней полученные знания
Форумы с появлением интернета позволили воспользоваться коллективным разумом, задав вопрос широкой аудитории. Часто первым сообщением было „Читай документацию, тупорылый ты олень“, но и ответ, и более подробные объяснения получить стало возможно. Уровень персонализации вырос значительно: программист мог получить решение конкретно его проблемы, а не абстрактно изучать технологию
Stackoverflow – сайт с вопросами и ответами по программированию, построенный так, чтобы мотивировать пользователей задавать хорошие вопросы и писать подробные ответы. Это сильно облегчило вход в профессию: почти на любой распространённый вопрос на этом сайте есть прекрасные решения. Но при серьёзной работе часто сталкиваешься с проблемами впервые. Тогда можно задать вопрос самому и ждать ответа или искать похожие вопросы и пытаться понять, как их решения могут помочь тебе

ChatGPT по моему опыту отлично отвечает даже на узкие вопросы (оговорка: для языка программирования Python) с объяснением, почему возникла ошибка и какой у неё контекст. Часто больше не нужно искать похожие вопросы, читать чужой код или спрашивать разработчиков. Ты получаешь ответ прямо на свой вопрос и можешь уточнить детали за секунды. Наблюдая за новичком в программировании, я вижу, как быстро она прогрессирует благодаря такой возможности

Кто-то назовёт это деградацией, но эффективность работы возрастает в разы. Всегда можно вернуться к предыдущим способам, если ChatGPT не справляется, но первым инструментом под рукой стала она

#программирование
Программисты 1980-ых: „Фу, С++ слишком высокоуровневый, настоящие программисты общаются с компьютером на С и ассемблере
Программисты 2000-ых: „Фу, Питон слишком высокоуровневый, настоящие программисты пишут код на C++“
Программисты 2030-ых: пишут код на английском

Навеяно интервью с Andrej Karpathy и рассуждениями про software 2.0. Возможно, программирование будущего будет заключаться в объяснении на человеческом языке, что ты хочешь, и (для особо продвинутых программистов) в ревью кода, сгенерированного нейросетями

#программирование
Для нашей недавней статьи (пока – препринта) меня попросили визуализировать пропущенные значения в данных. Буквально – сделать "NA figure". NA часто обозначают пропущенные значения в таблицах. Проблема была в том, что в наших данных было очень много колонок. Традиционные методы визуализации, такие как столбчатые диаграммы или хитмапы были слишком огромными и не очень информативными

Поэтому я создал библиотеку для визуализации nafig! Она позволяет рисовать столбики названиями колонок из данных. Можно разбить их по процентам пропущенных значений и явно увидеть признаки, которые ведут себя плохо. Также, можно покрасить названия колонок по типам данных или другим интересующим признакам

Буду благодарен звёздочкам на гитхабе и вдвойне благодарен предложениям по улучшению визуализации :)

#программирование
Неожиданная ссылка на российский автопром в иностранной презентации про машинное обучение

Контекст: размечать данные тяжело. Например, подписывать, что именно находится на картинке, если их много, а объекты постоянно меняются. Говоря «BMW», люди имеют ввиду разное сегодня, десять и тридцать лет назад

Далее – цитата докладчика (в переводе, он говорил на английском): «Если только речь не идёт про Лады, которые остаются необыкновенно похожими уже десятки лет»

#программирование
Осознание года: серверы так называются, потому что они обслуживают (serve) запросы „клиентов“

#лингвистика #программирование
Примеры обработок изображений алгоритмами донейросетевой эпохи – это что-то из фильмов ужасов

Отсюда

#программирование
Заменит ли ИИ программистов и причём здесь китовые оргии

Одним летним вечером очень захотелось смоделировать вымирание китов (у вас такого не бывает?). Начнём с простой модели: пусть киты случайным образом плавают по двумерному океану и при встрече производят нового кита. В жизни всё сложнее, но такая модель покажет важный факт: если животных будет достаточно много, они будут встречаться друг с другом часто и поддерживать популяцию. Если же китов станет мало, они могут умереть от старости прежде, чем встретят партнёра, и виду грозит вымирание. Это в теории, но на практике всё пошло не по плану

Сказано – сделано отправлено в чатгпт и уже через 10 секунд электронные киты весело плавают по голубому океану в окне браузера. Вот наконец происходит романтичное столкновение пары и… компьютер намертво зависает. Я повторил моделирование ещё пару раз, но результат был тем же: безграничная любовь морских млекопитающих не вмещалась в оперативную память. Пришлось лезть в код, чтобы разобраться (ужас, прошлый век, может ещё и писать самому?)

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

„Мда, нейросети пока не заменят программистов“, – подумал я, но в ответ на жалобу из всего двух слов – „браузер завис“ – чатгпт нашёл проблемное место, исправил ошибку и предложил возможные улучшения модели

А на следующий день я узнал, что киты и правда размножаются, устраивая оргии. Самец издаёт зов и самки сплываются посмотреть кто это такой громкий, а, раз уж приплыли, заодно и наделать новых китят. Получается, первоначальная модель была не так и далеко от правды?

#биология #программирование
На хакатоне обнаружили очень странное поведение UMAP. Помимо расстояния между наблюдениями оказывается важен их порядок. Здесь матрица расстояний заполнена нулями и всё буквально находится в одной точке – никакой структуры в данных нет. Но из-за того, что наблюдения расположены не случайно, а блоками по классам, визуализация создаёт видимость осмысленной структуры

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

Ещё более странный случай и больше информации – в треде

#математика #программирование
This media is not supported in your browser
VIEW IN TELEGRAM
Про двойные маятники куча контента: и научного, и популярного. Это система с двумя подвижными звеньями и очень хаотичным поведением. Двойные маятники с неразличимыми глазом начальными позициями очень скоро начинают колебаться совершенно непохожим образом, а предсказать, когда остановится каждый из них, практически невозможно. Хаос как он есть, о чём как правило и говорят в бесчисленных материалах по теме

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

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

#математика@chelovek_nauk #программирование@chelovek_nauk
Вот за что люблю интернет: одному пришла в голову идея, другой поделился, третий подхватил и дополнил чем-то своим. Знакомый физик Кирилл на основе недавнего поста сделал свою визуализацию двойного маятника. Каждый пиксель здесь – маятник, а цвета кодируют один из углов. Невероятно красиво!

Остров стабильности, оказывается, выглядит как кит (картинка есть в комментариях). А ещё оцените мощь современных технологий. Обнаружить этот эффект можно было бы и двести лет назад, нужно только собрать кучу маятников, точно отметить углы и придумать как запустить всё одновременно. Ну и конечно хорошо всё запомнить и зарисовать. Сегодня модель строится за 20 строчек кода и считается минуту

#физика@chelovek_nauk #программирование@chelovek_nauk