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

Если хотите начать с начала, вот ссылка на Часть 1.

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

Первым делом проигнорируйте дурацкий список книг и курсов, который вы видите в блогах и на Quora. Поверьте, они никуда вас не доставят.

Первое, что вам следует сделать, если вы хотите начать с ИИ, - это Курс Эндрю Нг на Coursera. Теперь важно понять, чего ждут от этого курса. ИИ - это что-то вроде математики + кода, поэтому курс Эндрю Нг - это краткое введение в математическую часть этого материала. И да, ответ на вопрос, нужно ли мне знать математику, лежащую в основе всего, что связано с ИИ, ответ не очень простой, но это примерно так. Пилот управляет самолетом, но это не значит, что он не знает, что внутри самолета, ему не нужно его ремонтировать или производить, но ему определенно нужно знать, что происходит внутри. То же самое и с ИИ: никто не попросит вас решить соответствующие дифференциальные уравнения, но если вы не знаете, что происходит внутри, вы сильно теряете. Так что да, сначала попотеть, чтобы понять, что происходит.

Хорошо, вы прошли свой первый курс машинного обучения, но он не такой уж большой. Вы все еще не знаете, что такое нейронная сеть или что именно делает SVM.

Путь отсюда может быть немного сложным, но вот варианты. Ссылка здесь очень полезна, поскольку дает вам представление о ключевых алгоритмах искусственного интеллекта, которые вам необходимо знать на пути к успешному профессиональному развитию искусственного интеллекта. В общих чертах, алгоритмы можно разделить на следующие группы:

  1. Классические (PCA, Polynomial Fitting, линейная и логистическая регрессия и кластеризация K-средних)
  2. Немного навороченные (SVM, деревья решений и случайные леса)
  3. Всем нравится (нейронные сети)
  4. Другие продвинутые вещи, о которых вам пока не нужно беспокоиться

Одним из способов может быть изучение и освоение задач из Kaggle для первых двух групп, а затем переход к нейронным сетям. Почему это различие? Потому что я считаю нейронные сети более продвинутыми и глубокими, чем другие, а также из-за их популярности в настоящее время. Или вы можете сразу начать с NN и оставить другие (хотя это очень опасно).

Но остается вопрос, что читать и смотреть, чтобы освоить эти алгоритмы. Первые две категории в некотором роде относительно проще, чем NN, поэтому пары видео на YouTube и лекций с университетских курсов должно быть достаточно.

Тем не менее, NN - это то, где все может быть очень сложно, и я постараюсь поделиться своим планом ресурсов для того же.

Первое, что вам нужно сделать, это прочитать эту ссылку построчно: http://adventuresinmachinelearning.com/neural-networks-tutorial/. Это лучший учебник по нейронной сети, который вы можете найти. Прочтите его построчно, внедрите код и поймите, что в нем происходит. Помимо полного понимания базовой нейронной сети, это также улучшит ваше понимание массивов Python и Numpy.

Второй шаг, не задумываясь, - это прочитать эту короткую онлайн-книгу: http://neuralnetworksanddeeplearning.com/chap1.html. В то время как предыдущая ссылка предоставила вам четкое понимание NN, эти 6 глав сделают ваше понимание NN более прочным.

К настоящему времени вы будете иметь представление о том, что такое сеть и как она работает. Кроме того, вы уже слышали о таких вещах, как PyTorch, Keras, TensorFlow, сверточная нейронная сеть, NLP, LSTM и т. Д., И вам было бы интересно, здорово, что я закодировал свою первую сеть, но, похоже, я все еще потерялся.

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

Тем не менее, как разобраться в этих модных словечках вроде TF и ​​тому подобном.

Итак, НС бывают разных типов, самый простой из них называется персептроном, о котором мы узнали выше. Другие для обработки естественного языка называются LSTM (Long Short Term Memory), а для обработки изображений мы используем так называемые CNN (сверточные нейронные сети). Это только ориентировочные варианты использования, которые помогут в первоначальном понимании, в современном практическом использовании комбинация алгоритмов используется для нескольких целей. По одной из приведенных выше ссылок есть ссылки на конкретные руководства для этих сетей.

Теперь вы не всегда программируете свою сетевую сеть с нуля, на самом деле вы просто берете уже обученную сетевую сеть или используете фреймворк, который поможет вам легко создать сетевую сеть и настроить ее. Такие технологии, как TensorFlow, Keras и PyTorch, по сути, помогают вам быстро кодировать свои программы ИИ, чтобы вы могли больше сосредоточиться на решении проблемы, а не на проектировании NN с нуля.

Снова ведутся споры о том, что выбрать из TF, Keras, PyTorch и других. Мы можем упростить задачу и продолжить работу с TensorFlow. Почему? Потому что он довольно популярен в сообществе, поэтому у вас есть отличная поддержка со стороны разработчиков, а также нет недостатка в обучающих материалах, чтобы изучить эту вещь.

Что дальше?

Просто изучите TensorFlow, и единственный ресурс, который я порекомендую, это: https://github.com/Hvass-Labs/TensorFlow-Tutorials. Оставьте все остальное и просто следуйте набору из 20 руководств, чтобы действительно изучить TensorFlow.

Совет от профессионала: знайте, что такое Jupyter Notebook и как они работают. Установите в своей системе вручную, а также с помощью Anaconda.

Совет от профессионала: знайте, что такое разные среды в Anaconda и как ими управлять. Знайте, что такое pip install, и попробуйте свои силы в этом.

Также вы можете прочитать эту замечательную книгу под названием Практическое машинное обучение с помощью Scikit-Learn и TensorFlow от O’REILLY, чтобы глубже понять определенные темы. Поверьте, это самая практичная и полезная книга по машинному обучению с TF.

Что ж, мы подошли к концу, и пока вы не закончите с вышеуказанными шагами, у вас будет приключение. Следующие шаги - это то, что вам нужно выяснить самостоятельно, в зависимости от того, что вы хотите сделать и куда вы хотите двигаться дальше.

В дополнение к ресурсам, упомянутым во всех трех статьях, вы также можете обратиться к следующим книгам (вам не нужно читать их полностью, а только для определенных деталей).

  1. Книга по глубокому обучению Иэна Гудфеллоу (особенно хороша для основ машинного обучения и математической обработки нейронных сетей)
  2. Машинное обучение от Митчелла (для специальных тем, таких как Q-Learning, обучение с подкреплением)
  3. Машинное обучение: вероятностный подход Кевина П. Мерфи (если вас интересуют математические детали алгоритмов)

Эти вводные статьи были лишь очень коротким шагом в начале вашего пути в области ИИ. Это только хороший фундамент, на котором вы можете строить себя дальше. Лучший способ после этих статей - начать работать над проблемным пространством (например, я балуюсь использованием ИИ на финансовых рынках) и использовать все, что вы узнали и чему научитесь, для решения этой проблемы.

Я надеюсь, что это помогло некоторым людям. Если да, оставьте аплодисменты.

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