На чем программировать AI: Theano vs TensorFlow vs Scikit-learn

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

Программирование искусственного интеллекта

Скайнет жаждет крови таксистов и бухгалтеров

Эксперты выяснили, что вытеснение человека из профессий будет происходить неравномерно. Первыми выпрут всяких таксистов. Их легко заменят даже самые недалекие роботы уже лет через 3-5. Потом выгонят бухгалтеров и прочих маклеров. Потом армию безработных пополнят даже люди творческих профессий: журналисты, художники, дезигнеры. А вот последними заменят тех, кто весь этот искусственный интеллект и создавал на свою голову. Конечно, роботы будут делать роботов и человек в этой цепочке не понадобится. Но если мозг таксиста удастся заменить консервной банкой с микросхемами уже в ближайшем будущем, то программистов AI заменить не так просто. Теперь поняли откуда ветер дует? Мы все должны быстро стать спецами по AI. Начнем со знакомства с библиотеками машинного обучения. Возможно, программистами AI мы не станем, а вот экспертами — легко. Достаточно в своей речи почаще использовать термины Theano, TensorFlow и scikit-learn.

Theano

Theano — это библиотека, запиленная на православном — для программистов AI — Пайтоне. Позволяет проводить ресурсоемкие вычисления за разумное время. Достигается это за счет использования GPU и жесткой оптимизации. Разработчики Theano уверяют, что некоторые вычисления производятся на видеокарте в 140 раз быстрее, чем на самом современном процессоре общего назначения. Еще Theano имеет тесную интеграцию с NumPy, хорошо оптимизирована, умеет генерировать код на C и содержит развитые инструменты для Unit-тестирования. Хотите запилить нейронную сеть и не сидеть 140 лет в ожидании, когда же она обучится? Используйте Theano!

Пример. Как сложить 2 числа в Theano


import numpy
import theano.tensor as T
from theano import function
x = T.dscalar('x')
y = T.dscalar('y')
z = x + y
f = function([x, y], z)
f(2, 3)

Библиотека TensorFlow для программирования ИИ

Еще одна open source-библиотека на Python. Вообще, если ты не знаешь Пайтон и не работаешь в Linux, то стать экспертом по AI у тебя не получится. Все три рассматриваемые библиотеки имеют официальную поддержку только для Linux.

Библиотека TensorFlow написана не без участия Google и делает примерно то же самое, что и Theano, но использует другие концепции. Библиотека представляет потоки данных в форме графов, где вершины являют собой математические операции, а ребра — многомерные массивы (тензоры). TensorFlow тоже задействует твою карточку Nvidia, чтобы вычислять в десятки и сотни раз быстрее. Google уже использует TensorFlow в некоторых своих чудо-проектах. Используй и ты!

Пример программирования с применением TensorFlow

Простое сложение 3 и 4:


node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0)
sess = tf.Session()
node3 = tf.add(node1, node2)
print("node3: ", node3)
print("sess.run(node3): ",sess.run(node3))

Scikit-learn

Еще одна свободная библиотека на Python. Подойдет тем, кто ничего не понял про первые две. Scikit-learn проще пареной репы и позиционируется как простая библиотека для машинного обучения. Позволяет проводить классификацию, кластеризацию, уменьшение размерности данных, строить модели данных и делать предсказания. И многое другое. Все функции хорошо описаны, а доступных примеров еще больше. Scikit-learn — отличный выбор для новичков. Но не только для новичков. Scikit-learn использовали инженеры Spotify для создания рекомендательной системы, которая подбирает для пользователя музыку по вкусу. А еще библиотека используется на крупных сайтах знакомств, чтобы максимизировать доход с посетителя. Scikit-learn позволяет фильтровать спам, распознавать образы на картинках, предсказывать котировки акций и всё это в несколько строчек на Python.

Пример нейронной сети на Scikit-learn

Используется многослойный персептрон для выявления закономерностей и последующего предсказания (clf.predict):


from sklearn.neural_network import MLPClassifier
X = [[0., 0.], [1., 1.]]
y = [0, 1]
clf = MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(5, 2), random_state=1)
clf.fit(X, y)
clf.predict([[2., 2.], [-1., -2.]])

Искусственный интеллект наступает

Запомнили все эти названия? А теперь срочно качайте библиотеки и запиливайте Hello, World! Это простое действие сделает из вас аналитиков и экспертов. Был таксистом? А теперь ты программист AI и большой знаток TensorFlow.

В заключении следует отметить, что не все эксперты по ИИ разделяют ту точку зрения, что скоро нас заменят роботы.

И в пример приводят как раз Theano, TensorFlow и Scikit-learn. Эти инструменты находятся на острие прогресса, но почему мы не видим впечатляющих успехов в ИИ? Где нормальная диктовка писем голосом? А почему Google Translate выдает такие больные переводы, которые невозможно читать без слез? Справедливости ради стоит отметить, что пока все достижения разработчиков AI более, чем скромны. Создано несколько программок, которые делают из картинки смешную картинку. И на этом всё. Такими технологиями не заменишь даже таксиста.
field_vote: 
Ваша оценка: Нет Средняя: 5 (5 оценки)
Компании: 
Дистрибутивы: 
Программное обеспечение: 
Языки программирования: 

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.