На чем программировать 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.
В заключении следует отметить, что не все эксперты по ИИ разделяют ту точку зрения, что скоро нас заменят роботы.
Комментировать