Всем привет и добро пожаловать обратно в Not So Random Software!

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

Случайная статья или газета

Применение глубокого обучения к поиску на Airbnb

Когда я несколько лет назад начал рассматривать попарное ранжирование в этой статье, сообщество было довольно молодым. Мне было очень приятно увидеть, что в 2018 году Airbnb опубликовала эту статью, в которой представила свои результаты с использованием реального производственного набора данных. Статья не только показывает конечный результат, но и рассказывает о некоторых неудачах, с которыми они столкнулись на этом пути. Вдохновляющий!

Случайное видео или подкаст

Учимся на рангах, учимся ранжировать — Жан-Филипп Вер, Google Brain

В этом видео, опубликованном Институтом Алана Тьюринга, Жан-Филипп Вер из Google Brain представляет свое исследование обучения ранжированию. Впереди много формул, но очень прочная основа, если вы хотите понять, как правильно формализовать эту проблему машинного обучения.

Случайная книга

Нейронные сети и глубокое обучение, Springer

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

Случайный инструмент

Ruby-fann gem для простых нейронных сетей на Ruby

RubyFann или «ruby-fann» — это ruby ​​gem, который привязывается к FANN (Fast Artificial Neural Network) из среды ruby/rails. FANN — это бесплатная (собственная) библиотека нейронных сетей с открытым исходным кодом, которая реализует многослойные искусственные нейронные сети, поддерживающие как полносвязные, так и редкосвязные сети. Он прост в использовании, универсален, хорошо документирован и быстр. RubyFann упрощает работу с нейронными сетями, используя ruby, с дополнительным преимуществом, заключающимся в том, что большая часть тяжелой работы выполняется изначально.

Случайная строка кода

Ruby-fann — это набор привязок к нативной библиотеке, написанной на C. API очень прост для начала, буквально 5 строк кода!

require 'ruby-fann'
train = RubyFann::TrainData.new(:inputs=>[[0.3, 0.4, 0.5], [0.1, 0.2, 0.3]], :desired_outputs=>[[0.7], [0.8]])
fann = RubyFann::Standard.new(:num_inputs=>3, :hidden_neurons=>[2, 8, 4, 3, 4], :num_outputs=>1)
fann.train_on_data(train, 1000, 10, 0.1) # 1000 max_epochs, 10 errors between reports and 0.1 desired MSE (mean-squared-error)
outputs = fann.run([0.3, 0.2, 0.4])

Случайная цитата

Если вы не можете объяснить это шестилетнему ребенку, вы сами этого не понимаете. Альберт Эйнштейн

Первоначально опубликовано на http://www.alfredo.motta.name 11 июня 2020 г.