утверждение:
1) Эта статья составлена из самоотверженной работы Даниэля и экспертов по машинному обучению в Интернете. Пожалуйста, обратитесь к ссылкам на конкретные цитируемые материалы. 2) Эта статья предназначена только для академического обмена, а не для коммерческого использования. Поэтому конкретные справочные материалы для каждой части не соответствуют в деталях. Если какая-то часть случайно ущемляет всеобщие интересы, свяжитесь с Haihan и свяжитесь с блогером, чтобы удалить ее. 3) У блогеров мало таланта и знаний.Если в тексте есть что-то неуместное, просьба указывать и вместе дорабатывать.Спасибо. 4) Это относится к первой версии, если есть ошибки, то надо дальше исправлять и добавлять или удалять. Я также надеюсь, что вы дадите больше указателей. Каждый понемногу делится и вносит свой вклад в развитие научных исследований на Родине.
〇, напишите впереди
На самом деле 19-го осеннего алгоритма набора постов несколько "переизбыток", а заголовки даже размещенынаклейки с алгоритмом убеждения. И во многом это связано с тем, что ситуация с применением алгоритмов в последние несколько лет была настолько хороша, что на алгоритм перешло большое количество людей.Большой пузырь, вызванный этим, еще не переварился, так что это не значит, что алгоритм вдруг стал сложным найти работу сейчас, но это было слишком легко раньше. По сути, вы сказали, что в компании действительно не хватает инженеров-алгоритмистов? Конечно нет, в компании тоже нехватка инженеров-алгоритмистов, так почему же так происходит? В дополнение к убеждению некоторых студентов, которые вслепую вошли в отрасль, несколько HR, которых я слышал и встречал, сказали, что они получили сотни резюме, но ни одно из них не совпадало. Следовательно, верно то, что алгоритмами занимаются многие люди, но также верно и то, что люди, которым нужно делать алгоритмы, тоже истинны, и главное противоречие заключается вНесоответствие спроса и предложения.
Поэтому, испытав множество психических расстройств, расспросив многих старших и крупных шишек и сославшись на статьи многих воротил, я решил обобщить, какие способности к обучению и запас знаний вам нужны, если вы хотите стать [Инженером алгоритмов глубокого обучения]. Эта статья должна быть [рекордной] статьей, я надеюсь увидеть, как я продвинулсячто ты узнал,что изучать,чему научиться, я надеюсь поделиться с вами.
1. Возможность программирования
Это действительно старомодный вопрос.Почему вы так говорите?Естественно потому, что я сотни раз слышал это [способность программирования], и у меня болит мозг, но никак.Основные навыки, насколько это необходимо?
Скажем так, если вы хотите написать эссе, если вы не можете писать, составлять слова и составлять предложения, я не думаю, что вы вообще должны быть в состоянии завершить творческий процесс. Это очень образно, но это правда, подумайте об этом хорошенько, найм вас на работу, компания не будет нанимать человека, который знает только MATLAB или python, чтобы заниматься разработкой проекта, а заниматься чистым исследованием алгоритмов.
- Все знают MATLAB, он действительно хорош для лабораторных исследований, эффективных и удобных операций с матрицами и массивами, а также неплохо подходит для рисования, но я никогда не слышал о промышленных приложениях.
- python Вам может быть интересно, почему, так сказать, если вы не знакомы с таким относительно простым языком, как python, вам действительно нечего сказать.
ТакВ частности, каковы основные требования к умению программировать?
(1) Опытный пользователь Linux
Но с точки зрения условий, многим может показаться, что это не очень подходит, например, лабораторные условия, компьютерные условия и т. д., но для нас,linuxВам не нужно знать слишком много. установитьubuntuСистема, часто используемые операции с файлами, компиляция программ и т. д. в порядке. Остальное полностью в процессе использования и обучения, и всегда держите книгу под рукой«Линукс-кухня Brother Bird», Божественная книга, вы можете Baidu или Google, чтобы узнать силу этой книги, естественно. В или сейчас сеть более мощная и есть много ресурсов.Лабораторный корпусЭто также хороший выбор, чтобы помочь вам соответствовать хорошей среде, и его можно использовать напрямую. Если вы все еще хотите сделать это самостоятельно, виртуальная машина также является хорошим выбором, она не повлияет на исходную конфигурацию среды вашего компьютера, но по-прежнему соответствует требованиям.
персональный план:
- «Линукс-кухня Brother Bird»
- Лабораторный корпус
(2) Умение пользоваться python
Некоторые студенты спросят, изучать ли python2 или python3? Скажем так, команда ядра python планирует прекратить поддержку python2 в 2020 году, а это значит, что python2 вот-вот попрощается, а вы все равно должны изучить python3, и вы сможете найти разницу, когда столкнетесь с предыдущим кодом python2. Python на самом деле очень прост в изучении, процесс чтения чужого кода и есть процесс обучения. Для незнакомого использования поищите официальные документы, такие какpython,numpy,pandas,matplot,scikit-learnи Т. Д.
Стоит поговорить о среде разработки Python.Поскольку вариантов слишком много, рекомендуется использовать блокнот pycharm и jupyter.Подробности см. в этом блоге.Подробные руководства по установке Anaconda и PyCharm под Windows 10 (с изображениями и текстом).
персональный план:
- «Программирование на Python: от входа к практике»
- «Безумные лекции по Python»
(3) свободное владение C++
персональный план:
- «Учебник по С++».
- «Учебник C++ плюс»
- Курс разработки программ и алгоритмов (1)
- Курс разработки программ и алгоритмов (3)
(4) Хорошая основа алгоритма
Это требует, чтобы возможности разработки прошли проверку, поскольку эффективность алгоритма по-прежнему требуется в реальном производстве. Алгоритмы, используемые в промышленности, отстают от академических на несколько лет. Не питайте слишком больших иллюзий по поводу алгоритмов, созданных компаниями. Качество реальных данных намного хуже, чем вы думаете, а алгоритмы, используемые в реальности, не такие высокотехнологичные. , Большую часть времени Ни используется для моделирования.
персональный план:
- LeetCode
- Niuke.com
- «Предложение пальцев меча»
питон:
- «Алгоритмическая схема»
- «Решение проблем структуры данных и алгоритмов с помощью Python»
- «Описание структур данных и алгоритмов языка Python»
С++:
- «Ага! Алгоритмы»
- Курс разработки программ и алгоритмов (2)
- «Введение в алгоритмы на китайском языке, третье издание» (это божественная книга...)
(5) Хорошие привычки программирования
2. Теория глубокого обучения
В основном я делаю что-то, связанное с [восстановлением изображения] или [сверхразрешением]. На самом деле, обычно это означает взглянуть на статью, воспроизвести структуру сети или напрямую запустить чужой код, изменить структуру сети и настроить гиперпараметры. Создание наборов данных изображений на ранней стадии и предварительная обработка являются основными задачами. Почему глубокое обучение такое мощное? Лучше ли это, чем традиционные методы обработки изображений? Какую проблему он в основном решает?
Лично согласен со следующими тремя пунктами: сильная способность изучать функции, сильная универсальность и низкие затраты на разработку, оптимизацию и обслуживание. Проблема может заключаться в количестве данных, а точность метки относительно велика. Статья, которую я читал ранее, хорошо написана, см.Почему глубокое обучение почти стало стандартом в исследованиях компьютерного зрения?.
По всему небу летают разные ресурсы для изучения этой части теории. Вот некоторые рекомендуемые:
- Вы можете взглянуть на день Ли Хунъи, чтобы понять курс по глубокому обучению;
- Ли ФейфейCS231nКонечно, NetEase Cloud Classroom имеет абстрактный перевод больших данных.Версия курса с китайскими субтитрами, узнать столбецумный блокЕсть перевод курса CS231N (очень хорошо);
- Эндрю Нг«ГЛУБОКО ОБУЧАЕМЫЙ ИИ», он будет оффлайн в конце этого года, и я лично написал его по курсуВводные заметки по глубокому обучению.
персональный план:
- «Понимание глубокого обучения за один день»
- Курс CS231N
- Курс глубокого обучения ИИ
- «Цветочная книга глубокого обучения DeepLearning»
- «Tensorflow + Актуальная платформа глубокого обучения Google»
- «Графические нейронные сети и глубокое обучение»
- «Глубокое обучение PyTorch на практике»
- «Глубокое обучение Python (Керас)»
- «Питорх глубокого обучения»
- «Среда глубокого обучения PyTorch»
- «Борьба PaddlePaddle и приложений для глубокого обучения»
- «Глубокое обучение кинематике»
- «Практическое компьютерное зрение PyTorch для глубокого обучения»
- Классические документы по глубокому обучению
3. g++, CMake и Makefile
персональный план:
- g++
- CMake
- Makefile
4. Оболочка, vim и git
- Команда оболочки является основой работы Linux, а также началом обучения использованию Linux.Ознакомление с расширенными командами оболочки значительно повысит эффективность будущей работы.
- vim является наиболее часто используемым редактором под Linux.Его могут использовать как новички, так и эксперты, а его редактирование столбцов, поиск и замена, автодополнение и другие функции являются гарантией эффективности.Может быть, студенты, которые перешли с Visual Studio и других окружения только начинаются, будет немного некомфортно, но со временем вы будете все больше и больше понимать, насколько хорош vim.
- Git обязателен для программистов.Потихоньку научитесь поддерживать несколько собственных кодовых баз, и вы поймете, когда возникнут проблемы в будущем.
персональный план:
- shell
- vim
- git
Пять, гусеничный питон
персональный план:
- Веб-краулер
- «Разработка кейса проекта Python от входа до реального боя — краулеры, игры и машинное обучение»
6. Визуализация данных
Мое предложение в связи с этим — больше играть в игры и смотреть чужой код и блоги, чтобы было легко учиться.
персональный план:
- Kaggle
- Тяньчи
7. Математическая основа
-
исчисление: На самом деле, я лично считаю, что знание исчисления относительно простое. Интегралов мало, а дифференциал не особенно сложен. На его изучение достаточно потратить день.
-
вероятность и статистика: это относительно продвинутая и наиболее важная ветвь числовой последовательности, применяемая в области машинного обучения. Такие приложения, как: условная вероятность, коэффициент корреляции, максимальное правдоподобие, закон больших чисел, цепь Маркова и т. д., еще должны хорошо справляться с вероятностью.
-
Линейная алгебра: Само цифровое изображение представлено в виде матрицы, а выборка, состоящая из нескольких векторов, также является матрицей. Эта форма очень распространена. В большинстве алгоритмов машинного обучения каждый образец существует в виде вектора, а суперпозиция нескольких матриц имеет форму матрицы.Форма тензора существует в одном из буквальных значений библиотеки глубокого обучения Google TensorFlow.
-
выпуклая оптимизация: Об этом нужно сказать отдельно. Поскольку слишком много задач (особенно в области машинного обучения) являются задачами оптимизации (оптимизации), выпуклая оптимизация является простейшей формой, поэтому все пытаются понять, как преобразовать общие задачи оптимизации в задачи выпуклой оптимизации. Что касается чистой теории выпуклой оптимизации, то она кажется относительно зрелой. В машинном обучении вы часто видите проблемы двойственности, условия ККТ и т. д., и вы тратите два дня на изучение урока.
На самом деле нет необходимости в систематическом изучении математических знаний, что малоэффективно и отнимает много времени, ведь у каждого есть база бакалавриата или аспирантуры, и этого достаточно. Наиболее используемой является матричная теория! ! ! Или изучите его, когда будете использовать, и резюмируйте его после того, как закончите. Затем следует использование поисковых онлайн-ресурсов, таких как CSDN, Zhihu и т. д.
персональный план:
- «Матричная теория»
- Курс "Выпуклая оптимизация" Пекинского университета
- Линь Сюаньтянь Краеугольный камень машинного обучения
- Методы машинного обучения Линь Сюаньтяня
Восемь, общественный номер
Времена изменились, и человек сто лет назад и представить себе не мог, что, когда он в замешательстве, он не переворачивает книгу и не спрашивает совета у других, а говорит стоящей рядом с ним машине. В наши дни, когда ученики начальной школы решают арифметические задачи или когда маленькие девочки приходят к своим тетям, им приходится спрашивать у компьютера: что происходит. Но какое это имеет отношение к обучению видению? - Ответ: Нет. Кажется, это зашло слишком далеко, давайте потянем немного дальше. Размышление о появлении чего-то нового и его связи со старым во временном измерении может дать вам свободу воображения. Такие вещи, как телеграммы, телефонные звонки, видеочаты и голографические звонки с помощью HoloLens, а также вагоны, автомобили, поезда, самолеты и ракеты, космические путешествия, паровые двигатели, электричество, Интернет и ИИ. Так что, безусловно, правильно использовать ресурсы и смотреть на большее, но нужно смотреть на это выборочно, нельзя смотреть на все подряд, энергия людей по-прежнему в приоритете.
Для начала поясним, что официальный аккаунт не рекламирует, а рекомендует несколько для самостоятельного просмотра (рейтинг не в порядке).
- Лаборатория машинного обучения
- Панчуан Ай
- коллекция соревнований kaggle
- Есть три ИИ
- Я люблю компьютерное зрение
- Datawhale
- жизнь компьютерного зрения
- CVer
- небольшой экскаватор
9. Пасхальные яйца
Взгляните на каталог, и вы увидите, что это похоже на перочинный нож, не так ли? Я надеюсь, что мы с тобой сможем быть непобедимыми, куда бы ни был направлен меч! ! !
Порекомендуйте блог, написанный мной -Сверточная нейронная сеть Big Talk CNN (полная галантерейных товаров), Сажайте деревья с этого момента.
Если вам посчастливилось помочь вам, пожалуйста, дайте мне [Нравится] и [Подписаться]! Я был бы очень признателен, если бы вы могли поддержать меня на этом пути [комментарий].
Если вам нужны дополнительные ресурсы, подписывайтесь на @I am Guan Xiaoliang, текст обсессивно-компульсивного расстройства MAX~
Ответьте на [Welfare], чтобы получить подарки, которые я приготовил для вас, включая C++, четыре основных элемента программирования, НЛП, глубокое обучение и т. д.
Ответьте на [Структура данных], чтобы получить информацию об алгоритмах и структурах данных
Если вы хотите увидеть больше статей (абзацев), глав (подзаголовков), обратите внимание на публичный аккаунт WeChat «Программист Гуань Сяолян»~