Скажу честно, у меня нет идей, что постить в этот канал🥲
А пока я ищу своё вдохновение, ловите подборку литературы по машинному обучению🙂
1. Обработка и анализ изображений в задачах машинного зрения, Визильтер Ю.В., Желтов С.Ю., Бондаренко А.В., Ососков M.B., Моржин А.В., 2010
Учебник по компьютерному зрению по лекциям МФТИ I guess. Посоветовал ее Архипов И. О. (директор нашего института ИИВТ). В программу шоу входит теория по предварительной обработке изображений, основы машинного обучения и разные математические методы посвященные "зрению на основе моделей и морфологическому анализу изображений" (принимаются шутки про надобность морфологического разбора со школы).
2. Глубокое обучение. Погружение в мир нейронных сетей, Николенко, Кадурин, Архангельская, 2020
Та самая книжка, которая стоит у меня в очереди на прочтение. По отзывам знаю, что в ней все четко рассказывается про устройство внутрянки нейронок, по полочкам раскладываются все математические формулы и определения. Дает очень огромный багаж знаний👍
3. Грокаем глубокое обучение, Эндрю Траск, 2019
По-моему, самая популярная книжка по мл из этой подборки) Одно время встречала ее почти везде. Обеспечивает минимальный порог входа в эту область. Обещает даже, что научит строить нейронки с нуля) В этой книжке вроде все примеры приводятся на python.
4. Data Science. Наука о данных с нуля, Джоэл Грас, 2020
Завершу эту подборку самой легкой, на мой взгляд, книгой (хотя сама ее не читала😜). Опять таки судя по отзывам, материал предлагается на очень простом языке. Данный представитель подборки не заставит читателя заскучать от нудных формул по всеми любимой математике, ведь в этой книге сделан акцент на простоту и доступность материала. Содержит в себе много тем по матеше, но всего по чуть-чуть))) Плюс этой книжки в том, что она показывает много примеров применения на практике. Например, анализ социальных сетей. Так же есть краткий курс в python
Хотела еще вставить сюда учебник по анализу данных у ШАД, но чет у них упал сайт😵💫
#about_ml
А пока я ищу своё вдохновение, ловите подборку литературы по машинному обучению🙂
1. Обработка и анализ изображений в задачах машинного зрения, Визильтер Ю.В., Желтов С.Ю., Бондаренко А.В., Ососков M.B., Моржин А.В., 2010
Учебник по компьютерному зрению по лекциям МФТИ I guess. Посоветовал ее Архипов И. О. (директор нашего института ИИВТ). В программу шоу входит теория по предварительной обработке изображений, основы машинного обучения и разные математические методы посвященные "зрению на основе моделей и морфологическому анализу изображений" (принимаются шутки про надобность морфологического разбора со школы).
2. Глубокое обучение. Погружение в мир нейронных сетей, Николенко, Кадурин, Архангельская, 2020
Та самая книжка, которая стоит у меня в очереди на прочтение. По отзывам знаю, что в ней все четко рассказывается про устройство внутрянки нейронок, по полочкам раскладываются все математические формулы и определения. Дает очень огромный багаж знаний👍
3. Грокаем глубокое обучение, Эндрю Траск, 2019
По-моему, самая популярная книжка по мл из этой подборки) Одно время встречала ее почти везде. Обеспечивает минимальный порог входа в эту область. Обещает даже, что научит строить нейронки с нуля) В этой книжке вроде все примеры приводятся на python.
4. Data Science. Наука о данных с нуля, Джоэл Грас, 2020
Завершу эту подборку самой легкой, на мой взгляд, книгой (хотя сама ее не читала😜). Опять таки судя по отзывам, материал предлагается на очень простом языке. Данный представитель подборки не заставит читателя заскучать от нудных формул по всеми любимой математике, ведь в этой книге сделан акцент на простоту и доступность материала. Содержит в себе много тем по матеше, но всего по чуть-чуть))) Плюс этой книжки в том, что она показывает много примеров применения на практике. Например, анализ социальных сетей. Так же есть краткий курс в python
Хотела еще вставить сюда учебник по анализу данных у ШАД, но чет у них упал сайт😵💫
#about_ml
🔥2
Нашлась ссылка на учебник ШАД по анализу данных!!!))))
https://academy.yandex.ru/handbook/ml
#about_ml
https://academy.yandex.ru/handbook/ml
#about_ml
education.yandex.ru
Учебник по машинному обучению
Онлайн-учебник по машинному обучению от ШАД — для тех, кто не боится математики и хочет разобраться в технологиях ML.
🔥1
Хочу дать вам немного теории по работе с ml🤓 А точнее, о подготовке к ней)
Самый первый и важный этап - собрать и предобработать входные данные. Всю информацию можно описать по ее конкретным признакам, которые в свою очередь различаются на два типа: категориальные и численные. Сегодня я расскажу Вам, товарищи, о работе с категориальными признаками.
Значения этих признаков можно относить к какой-либо группе, но при этом их порядок не важен. Эти значения не являются сравнимыми, например имя, страна, спорт и тп.
При сборе обучающей выборки часто бывает так, что находится много выбросов (аномальных значений для определенной категории) и пропусков (отсутсвие каких-то полей). Есть несколько способов для борьбы с такими случаями:
1. Удаление пропущенных значений. Самый простой способ, когда просто удаляешь строки в таблице или варианты. К сожалению, у этого метода есть очень жирный минус - огромная потеря информации, что сильно сокращает датасет.
2. Заполнение пропущенных значений. Этот способ гораздо лучше предыдущего, тк он сохраняет все исходные данные. Можно, к примеру, вставлять слово «unknown». Но все же лучше использовать медианы по столбцам, тк новые элементы будут более реальными и приближенными к первоначальным.
3. Замена максимальными значениями. В отличие от других методов, конкретно этот можно применить только к категориальным признакам, да бы не испортить всю выборку. Однако, я все равно больше склоняюсь к медианам.
4. Обнаружение и ограничение выбросов. Чтобы увидеть аномальные значения, достаточно визуализировать свою выборку. Для ограничения можно использовать процентили - (мера, в которой процентное значение общих значений равно этой мере или меньше таковой).
Также для обработки категориальных признаков можно использовать:
1. Быстрое кодирование (One-Hot encoding), суть которого заключается в распределении столбца на несколько других и присваиванием каждому из него 0 или 1. Полученные бинарные значения отобразят сгруппированость между данными и столбцами. Удобно для передачи инфы в алгоритмы.
2. Масштабирование признаков - приведение всех данных к одному формату.
3. Логарифмическое преобразование - помогает бороться с искаженными данными. Также, приближает их реальным. Важно! Работает только на положительных значениях.
Суть сей басни такова: нормально подготавливайте исходники изначально, чтобы потом не тратить неделю на поиск ошибок в коде (которых там может и не быть)🙃
#about_ml
Самый первый и важный этап - собрать и предобработать входные данные. Всю информацию можно описать по ее конкретным признакам, которые в свою очередь различаются на два типа: категориальные и численные. Сегодня я расскажу Вам, товарищи, о работе с категориальными признаками.
Значения этих признаков можно относить к какой-либо группе, но при этом их порядок не важен. Эти значения не являются сравнимыми, например имя, страна, спорт и тп.
При сборе обучающей выборки часто бывает так, что находится много выбросов (аномальных значений для определенной категории) и пропусков (отсутсвие каких-то полей). Есть несколько способов для борьбы с такими случаями:
1. Удаление пропущенных значений. Самый простой способ, когда просто удаляешь строки в таблице или варианты. К сожалению, у этого метода есть очень жирный минус - огромная потеря информации, что сильно сокращает датасет.
2. Заполнение пропущенных значений. Этот способ гораздо лучше предыдущего, тк он сохраняет все исходные данные. Можно, к примеру, вставлять слово «unknown». Но все же лучше использовать медианы по столбцам, тк новые элементы будут более реальными и приближенными к первоначальным.
3. Замена максимальными значениями. В отличие от других методов, конкретно этот можно применить только к категориальным признакам, да бы не испортить всю выборку. Однако, я все равно больше склоняюсь к медианам.
4. Обнаружение и ограничение выбросов. Чтобы увидеть аномальные значения, достаточно визуализировать свою выборку. Для ограничения можно использовать процентили - (мера, в которой процентное значение общих значений равно этой мере или меньше таковой).
Также для обработки категориальных признаков можно использовать:
1. Быстрое кодирование (One-Hot encoding), суть которого заключается в распределении столбца на несколько других и присваиванием каждому из него 0 или 1. Полученные бинарные значения отобразят сгруппированость между данными и столбцами. Удобно для передачи инфы в алгоритмы.
2. Масштабирование признаков - приведение всех данных к одному формату.
3. Логарифмическое преобразование - помогает бороться с искаженными данными. Также, приближает их реальным. Важно! Работает только на положительных значениях.
Суть сей басни такова: нормально подготавливайте исходники изначально, чтобы потом не тратить неделю на поиск ошибок в коде (которых там может и не быть)🙃
#about_ml
Кстати, на этой неделе я доделала все вопросы в разделе «комбинаторика»🥳
Так, что на следующей неделе я уже начну наращивать практику. Думаю, попробую решить один из вариантов экзамена, чтобы оценить свои силы
#info
Так, что на следующей неделе я уже начну наращивать практику. Думаю, попробую решить один из вариантов экзамена, чтобы оценить свои силы
#info
👍4👏1
Доброй ночи, товарищи!
Я тут подумала, что многие из вас наверное не знают моей темы на диплом (ну либо я ее уже озвучила и забыла об этом🙃)
Так вот, я решила работать над «методом грубого позиционирования беспилотных аппаратов». Входными данными служит огромный снимок местности со спутника (предполагается, что только по этой территории будет летать б/а), параметры беспилотника (текущее значение компаса, высота полёта, наклон и тд), и каждый момент времени поступает снимок текущей местности, где находится б/а.
Звучит очень грандиозно, но куда двигаться - непонятно😬
Пока что я написала простецкий алгоритм, который сравнивает изображения методом вычитания одного из другого. Даже можно задать шаг, с которым будет сдвигаться меньшая картинка на большей. Получается такой супер усложнённый полный перебор…
Работает он, конечно, достаточно долго (порядка 2 секунд с изображениями 1600х600 и 400х300 и шагом в 100 пикселей).
На данный момент я знаю только одно альтернативное решение этой задачи - разбор задачки с RuCode не помню какого года (вроде даже 2021). Но минус этого решения в том, что там используется нейронка , натренированная на датасете из 800 картинок.
Если я захочу применить это решение к поставленной задаче, сразу возникает вопрос: где я буду брать каждый раз обучающую выборку из ~500 картинок для абсолютно рандомной местности? Окей, всегда можно воспользоваться моим любимым вариантом - использовать синтетический датасет😂 Берём исходное изображение со спутника, нарезаем кучу ~300 картинок одинакового размера с разных участков этой местности. Оставшиеся 200 генерирует с помощью поворотов и различных фильтров (такое даже описывалось в разборе к той задаче рукода). И вуаля, можно обучать нейронку😎 Однако, на обучение нейронки может уходить от 1 дня до целой недели. А что, если беспилотник нужно запустить уже через час? Будет ли время на подготовку нейронки? А если беспилотник будет иметь возможность постоянно менять местность, по которой он летает(просто каждый раз получать новое исходное изображение)? Учить нейронку налету методом взлетов и падений?😂😂😂
Все, что остаётся сейчас делать - рыть инфу для поиска альтернативных решений на похожие задачи, ну и конечно пытаться придумать самой какой-то гениальный алгоритм)))
¡Buenas noches, amigos!
#about_ml
Я тут подумала, что многие из вас наверное не знают моей темы на диплом (ну либо я ее уже озвучила и забыла об этом🙃)
Так вот, я решила работать над «методом грубого позиционирования беспилотных аппаратов». Входными данными служит огромный снимок местности со спутника (предполагается, что только по этой территории будет летать б/а), параметры беспилотника (текущее значение компаса, высота полёта, наклон и тд), и каждый момент времени поступает снимок текущей местности, где находится б/а.
Звучит очень грандиозно, но куда двигаться - непонятно😬
Пока что я написала простецкий алгоритм, который сравнивает изображения методом вычитания одного из другого. Даже можно задать шаг, с которым будет сдвигаться меньшая картинка на большей. Получается такой супер усложнённый полный перебор…
Работает он, конечно, достаточно долго (порядка 2 секунд с изображениями 1600х600 и 400х300 и шагом в 100 пикселей).
На данный момент я знаю только одно альтернативное решение этой задачи - разбор задачки с RuCode не помню какого года (вроде даже 2021). Но минус этого решения в том, что там используется нейронка , натренированная на датасете из 800 картинок.
Если я захочу применить это решение к поставленной задаче, сразу возникает вопрос: где я буду брать каждый раз обучающую выборку из ~500 картинок для абсолютно рандомной местности? Окей, всегда можно воспользоваться моим любимым вариантом - использовать синтетический датасет😂 Берём исходное изображение со спутника, нарезаем кучу ~300 картинок одинакового размера с разных участков этой местности. Оставшиеся 200 генерирует с помощью поворотов и различных фильтров (такое даже описывалось в разборе к той задаче рукода). И вуаля, можно обучать нейронку😎 Однако, на обучение нейронки может уходить от 1 дня до целой недели. А что, если беспилотник нужно запустить уже через час? Будет ли время на подготовку нейронки? А если беспилотник будет иметь возможность постоянно менять местность, по которой он летает(просто каждый раз получать новое исходное изображение)? Учить нейронку налету методом взлетов и падений?😂😂😂
Все, что остаётся сейчас делать - рыть инфу для поиска альтернативных решений на похожие задачи, ну и конечно пытаться придумать самой какой-то гениальный алгоритм)))
¡Buenas noches, amigos!
#about_ml
Хочу поделиться первыми результатами разработки диплома)
Исходное изображение 1280х497 Яндекс карты
Сравниваемое изображение
400х300 Гугл карты
Масштаб карты на фотках одинаковый - 1 км
1 фото результат: «тепловая карта» с шагом в 101 пиксель, время работы - 2.4 сек.
2 фото результат: «тепловая карта» с шагом в 21 пиксель, время работы - 28.2 сек.
#about_ml
Исходное изображение 1280х497 Яндекс карты
Сравниваемое изображение
400х300 Гугл карты
Масштаб карты на фотках одинаковый - 1 км
1 фото результат: «тепловая карта» с шагом в 101 пиксель, время работы - 2.4 сек.
2 фото результат: «тепловая карта» с шагом в 21 пиксель, время работы - 28.2 сек.
#about_ml
👍6
Я попыталась решить пробник в ШАД😅😅😅
Ну… я решила первую задачу😂
А ещё правильно думала в направлении 5 задачи🤣
Лан, посмотрю завтра разбор и буду на шаг ближе к цели😎
Вариант оставлю ниже, вдруг кому тоже будет интересно попробовать себя👇👇👇
#info
Ну… я решила первую задачу😂
А ещё правильно думала в направлении 5 задачи🤣
Лан, посмотрю завтра разбор и буду на шаг ближе к цели😎
Вариант оставлю ниже, вдруг кому тоже будет интересно попробовать себя👇👇👇
#info
Что-то я совсем пропала😅
Продолжая тему о дипломе, расскажу Вам о изученных мною существующих решений похожих задач.
1. Решение, о котором я уже говорила - обучение нейронки на датасете из 800 картинок. Изучая подробнее, я заметила, что в аннотации обучающей выборки находятся не только координаты снимка относительно карты местности, но и угол поворота к ней.
Для меня это решение совсем не подходит. Как я уже говорила, никто не будет обучать БПЛА на определённую местность. Единственный плюс этого решения: выборка содержит фотографии в различные промежутки времени и различные погодные условия, что было бы полезно учитывать в ходе работы алгоритма.
2. Использование простейшей сверточной сети PyTorch без обучения. Использовалось свойство ядер сверточных сетей: если паттерн входного изображения совпадает с ядром, свертка с ним дает максимальный результат. В качестве ядер использовались сами входные изображения.
Этот метод решает проблему с обучением предыдущего метода. Но в противовес появляется другая: тк не учитывается поворот угла изображения, приходится перебирать все 360 ориентаций. Из-за чего может гораздо сильно возрасти время обработки.
3. Последнее решение, на мой взгляд, самое привлекательное - использование афинно инвариантного A-SIFT (масштабно-инвариантная трансформация признаков). Само решение - это поиск ближайшего соседа по метрике отношения количества сопоставленных ключевых точек к общему их числу.
Как я поняла, эта штука даже учитывает масштаб. Честно говоря, плохо разобралась в этом решении, но именно его я хочу пробовать первым:)
#about_ml
Продолжая тему о дипломе, расскажу Вам о изученных мною существующих решений похожих задач.
1. Решение, о котором я уже говорила - обучение нейронки на датасете из 800 картинок. Изучая подробнее, я заметила, что в аннотации обучающей выборки находятся не только координаты снимка относительно карты местности, но и угол поворота к ней.
Для меня это решение совсем не подходит. Как я уже говорила, никто не будет обучать БПЛА на определённую местность. Единственный плюс этого решения: выборка содержит фотографии в различные промежутки времени и различные погодные условия, что было бы полезно учитывать в ходе работы алгоритма.
2. Использование простейшей сверточной сети PyTorch без обучения. Использовалось свойство ядер сверточных сетей: если паттерн входного изображения совпадает с ядром, свертка с ним дает максимальный результат. В качестве ядер использовались сами входные изображения.
Этот метод решает проблему с обучением предыдущего метода. Но в противовес появляется другая: тк не учитывается поворот угла изображения, приходится перебирать все 360 ориентаций. Из-за чего может гораздо сильно возрасти время обработки.
3. Последнее решение, на мой взгляд, самое привлекательное - использование афинно инвариантного A-SIFT (масштабно-инвариантная трансформация признаков). Само решение - это поиск ближайшего соседа по метрике отношения количества сопоставленных ключевых точек к общему их числу.
Как я поняла, эта штука даже учитывает масштаб. Честно говоря, плохо разобралась в этом решении, но именно его я хочу пробовать первым:)
#about_ml
👍1
Доброй ночи, дорогие подписчики!
Наболевшая тема - ну нет в нашем институте требований на диплом для научной деятельности, только разработка😩
Конечно, в управлении всё бурно обсуждается в продвижении науки среди молодых студентов. И как всегда, когда будет готово разделение дипломов на разработку и науку, я не попаду в этот поток счастливчиков😂
Не беда - работаем с тем, что есть) Приходится писать спецификацию требований (спасибо, что не заставили писать календарный план🥲). Но тем не менее, мне нужно придумать интерфейс для работы с моими (далеко не моими🤡) алгоритмами. Захотелось поделиться с вами прототипами) Прикладываю ниже👇
Для тех, кто не понял почему я возмущаюсь: я хотела бы заняться чисто разработкой нового алгоритма позиционирования беспилотников (ну или доработкой уже существующих), однако на защите бакалавского диплома от меня скорее требуют идею и бизнес план с чёткими требованиями, архитектурой.
Я прекрасно понимаю, что я ставлю для себя слишком высокую планку (разработка чего-то абсолютно нового) и за год вряд ли получиться хотя бы приблизиться к этой цели. Несмотря на это, я хочу уходить в направление науки и предлагаю давать выбор программистам между направлениями разработки и науки в государственных учреждениях :)
#phil_thoughts
Наболевшая тема - ну нет в нашем институте требований на диплом для научной деятельности, только разработка😩
Конечно, в управлении всё бурно обсуждается в продвижении науки среди молодых студентов. И как всегда, когда будет готово разделение дипломов на разработку и науку, я не попаду в этот поток счастливчиков😂
Не беда - работаем с тем, что есть) Приходится писать спецификацию требований (спасибо, что не заставили писать календарный план🥲). Но тем не менее, мне нужно придумать интерфейс для работы с моими (далеко не моими🤡) алгоритмами. Захотелось поделиться с вами прототипами) Прикладываю ниже👇
Для тех, кто не понял почему я возмущаюсь: я хотела бы заняться чисто разработкой нового алгоритма позиционирования беспилотников (ну или доработкой уже существующих), однако на защите бакалавского диплома от меня скорее требуют идею и бизнес план с чёткими требованиями, архитектурой.
Я прекрасно понимаю, что я ставлю для себя слишком высокую планку (разработка чего-то абсолютно нового) и за год вряд ли получиться хотя бы приблизиться к этой цели. Несмотря на это, я хочу уходить в направление науки и предлагаю давать выбор программистам между направлениями разработки и науки в государственных учреждениях :)
#phil_thoughts
👍2
👍2