Представьте, что у вас есть последовательность ДНК из 4 букв: A, T, G и C длиной тясячи и миллионы нуклеотидов. Анализом таких последовательностей занимается биоинформатика. Но было бы интересно как-то визуализировать эту строку, чтобы можно было на неё взглянуть
Представьте лист бумаги в клетку. Можно начать в какой-то из клеток, а затем двигаться вверх, если вы встретите в последовательности букву "А", вправо, если "Г" и так далее. В конце концов получится какое-то изображение и совсем разные виды будет довольно просто оценивать зрительно!
Когда мне это пришло в голову, я уже почти сел за код, но погуглив, выяснил, что это придумали за десяток лет до меня. Ну и ладно, зато картинки самому делать не надо :D
#биология #программирование
Представьте лист бумаги в клетку. Можно начать в какой-то из клеток, а затем двигаться вверх, если вы встретите в последовательности букву "А", вправо, если "Г" и так далее. В конце концов получится какое-то изображение и совсем разные виды будет довольно просто оценивать зрительно!
Когда мне это пришло в голову, я уже почти сел за код, но погуглив, выяснил, что это придумали за десяток лет до меня. Ну и ладно, зато картинки самому делать не надо :D
#биология #программирование
Как видят нейросети
Слева – визуализация одного из нейронов сети, которая распознаёт собак. Видно какую-то смесь собачьих мордочек. Это помогает нейросети распознать на картинке пёсика вне зависимости от поворота его головы на фотографии
Справа – часть данных, на которых обучалась нейросеть
#программирование
Слева – визуализация одного из нейронов сети, которая распознаёт собак. Видно какую-то смесь собачьих мордочек. Это помогает нейросети распознать на картинке пёсика вне зависимости от поворота его головы на фотографии
Справа – часть данных, на которых обучалась нейросеть
#программирование
Визуализация ещё одного нейрона нейросети. Он отвечает за несколько функций сразу: распознаёт кошачьи мордочки, части автомобиля, а также кошачьи лапки :З
#программирование
#программирование
Мой доклад об онлайн-образовании с небольшой IT-конференции. Рассказываю, какие существуют платформы с онлайн-курсами и могут ли они сделать из вас программиста
#программирование
#видео
https://youtu.be/zCh6ZUM0oZs
#программирование
#видео
https://youtu.be/zCh6ZUM0oZs
YouTube
Владимир Шитов | Можно ли стать программистом, проходя онлайн-курсы
Владимир Шитов, ML-инженер в BIOCAD. Биоинформатик, студент СибГМУ.
Могут ли онлайн-курсы научить программированию с нуля? Какие существуют платформы для обучения, как выбрать подходящий курс и что делать после.
0:00 Представление докладчика
3:11 Мой путь…
Могут ли онлайн-курсы научить программированию с нуля? Какие существуют платформы для обучения, как выбрать подходящий курс и что делать после.
0:00 Представление докладчика
3:11 Мой путь…
Wolfram Physics Project обещает перевернуть современную физику и предоставить "теорию всего"
Пока сложно сказать, получилось ли это сделать. Но математически проект действительно очень красив. В его основе — предположение, что Вселенная состоит из маленьких блоков, которые изменяются согласно определённому правилу. Почти как клеточный автомат в игре "Жизнь"
Для таких систем выполняются многие законы, известные физике. Возможно, с их помощью удастся связать прежде разрозненные теории
#физика #программирование
Пока сложно сказать, получилось ли это сделать. Но математически проект действительно очень красив. В его основе — предположение, что Вселенная состоит из маленьких блоков, которые изменяются согласно определённому правилу. Почти как клеточный автомат в игре "Жизнь"
Для таких систем выполняются многие законы, известные физике. Возможно, с их помощью удастся связать прежде разрозненные теории
#физика #программирование
Библиотека CATplot для языка программирования R позволяет рисовать графики котиками
На случай, если вы когда-нибудь хотели нарисовать косянус
#программирование
На случай, если вы когда-нибудь хотели нарисовать косянус
#программирование
This media is not supported in your browser
VIEW IN TELEGRAM
Визуализация работы алгоритма DBSCAN. Это алгоритм кластеризации: он ищет группы похожих наблюдений в данных
Например, представьте, что каждая точка здесь — это пациент. Чем правее точка, тем больше у человека систолическое давление, а чем выше — тем больше диастолическое. DBSCAN позволил бы выделить кластеры пациентов из данных. Так можно, например, искать подтипы заболеваний, которые требуют разного лечения
#программирование
Например, представьте, что каждая точка здесь — это пациент. Чем правее точка, тем больше у человека систолическое давление, а чем выше — тем больше диастолическое. DBSCAN позволил бы выделить кластеры пациентов из данных. Так можно, например, искать подтипы заболеваний, которые требуют разного лечения
#программирование
Невероятно крутая генерация изображений от нейросети DALL·E 2
В 2021 году компания OpenAI представила нейросеть DALL·E. Она умела генерировать картинки по описанию, будь оно реалистичным или абсолютно безумным. Сейчас вышла новая нейросеть, создающая ещё более качественные иллюстрации. На фото выше картинка по запросу “Космонавт на лошади в фотореалистичном стиле”. Другие примеры есть на сайте. Будем надеяться, скоро появится доступ к модели и можно будет создавать картинки по своим описаниям
По-моему, это круто ещё и потому что задача создания изображений по описанию очень сложна даже для людей. Люди хорошо умеют отличать котиков от собачек и было большим прорывом, когда это научились делать нейросети. Но человек обычно не представляет фотореалистичное изображение у себя в голове. И очень немногие люди способны создавать такие иллюстрации на бумаге или электронном устройстве. Потрясает, что учёные научили этому компьютер
#программирование
В 2021 году компания OpenAI представила нейросеть DALL·E. Она умела генерировать картинки по описанию, будь оно реалистичным или абсолютно безумным. Сейчас вышла новая нейросеть, создающая ещё более качественные иллюстрации. На фото выше картинка по запросу “Космонавт на лошади в фотореалистичном стиле”. Другие примеры есть на сайте. Будем надеяться, скоро появится доступ к модели и можно будет создавать картинки по своим описаниям
По-моему, это круто ещё и потому что задача создания изображений по описанию очень сложна даже для людей. Люди хорошо умеют отличать котиков от собачек и было большим прорывом, когда это научились делать нейросети. Но человек обычно не представляет фотореалистичное изображение у себя в голове. И очень немногие люди способны создавать такие иллюстрации на бумаге или электронном устройстве. Потрясает, что учёные научили этому компьютер
#программирование
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
#видео #биология #программирование
Видео: 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 не справляется, но первым инструментом под рукой стала она
#программирование
Очень показательный пример, где ChatGPT уже несравненно лучше других технологий – помощь с ошибками при программировании. Ошибками в компьютерном смысле – когда программа не работает и показывает страшное сообщение. Они возникают десятки раз за день при работе программистом и сотни при обучении. Как с ними справлялись раньше?
• Интеллект или помощь коллег. Когда деревья были большими, а по земле ходили динозавры, люди понимали устройство компьютеров и в случае, когда что-то идёт не так, исправляли ошибки или разбирались, какие биты в памяти оказались повёрнутыми не туда. Если этого сделать не получалось, можно было подумать ещё недельку или спросить помощь у более опытных коллег. Многие программы приходилось писать самостоятельно, потому что их ещё просто не существовало или не было способа обмена
• Книги и документация собирали и обобщали информацию. Если что-то сломалось – читай документацию, чтобы глубже понять технологию, попутно думая о своей проблеме и примеряя к ней полученные знания
• Форумы с появлением интернета позволили воспользоваться коллективным разумом, задав вопрос широкой аудитории. Часто первым сообщением было „Читай документацию, тупорылый ты олень“, но и ответ, и более подробные объяснения получить стало возможно. Уровень персонализации вырос значительно: программист мог получить решение конкретно его проблемы, а не абстрактно изучать технологию
• Stackoverflow – сайт с вопросами и ответами по программированию, построенный так, чтобы мотивировать пользователей задавать хорошие вопросы и писать подробные ответы. Это сильно облегчило вход в профессию: почти на любой распространённый вопрос на этом сайте есть прекрасные решения. Но при серьёзной работе часто сталкиваешься с проблемами впервые. Тогда можно задать вопрос самому и ждать ответа или искать похожие вопросы и пытаться понять, как их решения могут помочь тебе
ChatGPT по моему опыту отлично отвечает даже на узкие вопросы (оговорка:
Кто-то назовёт это деградацией, но эффективность работы возрастает в разы. Всегда можно вернуться к предыдущим способам, если ChatGPT не справляется, но первым инструментом под рукой стала она
#программирование
Программисты 1980-ых: „Фу, С++ слишком высокоуровневый, настоящие программисты общаются с компьютером на С и
Программисты 2000-ых: „Фу, Питон слишком высокоуровневый, настоящие программисты пишут код на C++“
Программисты 2030-ых: пишут код на английском
Навеяно интервью с Andrej Karpathy и рассуждениями про software 2.0. Возможно, программирование будущего будет заключаться в объяснении на человеческом языке, что ты хочешь, и (для особо продвинутых программистов) в ревью кода, сгенерированного нейросетями
#программирование
ассемблере
“Программисты 2000-ых: „Фу, Питон слишком высокоуровневый, настоящие программисты пишут код на C++“
Программисты 2030-ых: пишут код на английском
Навеяно интервью с Andrej Karpathy и рассуждениями про software 2.0. Возможно, программирование будущего будет заключаться в объяснении на человеческом языке, что ты хочешь, и (для особо продвинутых программистов) в ревью кода, сгенерированного нейросетями
#программирование
Для нашей недавней статьи (пока – препринта) меня попросили визуализировать пропущенные значения в данных. Буквально – сделать "NA figure". NA часто обозначают пропущенные значения в таблицах. Проблема была в том, что в наших данных было очень много колонок. Традиционные методы визуализации, такие как столбчатые диаграммы или хитмапы были слишком огромными и не очень информативными
Поэтому я создал библиотеку для визуализации nafig! Она позволяет рисовать столбики названиями колонок из данных. Можно разбить их по процентам пропущенных значений и явно увидеть признаки, которые ведут себя плохо. Также, можно покрасить названия колонок по типам данных или другим интересующим признакам
Буду благодарен звёздочкам на гитхабе и вдвойне благодарен предложениям по улучшению визуализации :)
#программирование
Поэтому я создал библиотеку для визуализации nafig! Она позволяет рисовать столбики названиями колонок из данных. Можно разбить их по процентам пропущенных значений и явно увидеть признаки, которые ведут себя плохо. Также, можно покрасить названия колонок по типам данных или другим интересующим признакам
Буду благодарен звёздочкам на гитхабе и вдвойне благодарен предложениям по улучшению визуализации :)
#программирование