Искусственные нейронные сети

Что в настоящее время наиболее разумно использовать нейронную сеть?

Любит | Нелюбов | Ответы | Вид | 6566


Коллин Фаррелли Data Scientist / Poet / Social Scientist / Topologist (2009-настоящее время)   
@ | Обновлено Right Now


Давайте обнаружим сарказм. Очень простая проблема, верно? (Я только что пошел мета.)

Ладно. Давайте посмотрим на пару саркастических отзывов о продукте. Интуитивно понятно, что если обзор имеет позитивное настроение, но низкий рейтинг , то он, вероятно, саркастичен. Примеры:

  • «Я устал от того, что меня избивали красивые женщины. После того, как я купил эту куртку, проблема решена! (Рейтинг: 0.5 / 5)
  • « Отличное буррито, теперь попробуй приготовить бобы». (Оценка: 1/5)

Возможно, вы заметили, что настроения отзывов положительные («проблема решена», «отличная»), но оценки низкие. Это похоже на признак сарказма.

Теперь, когда мы подозреваем, что существует некоторая взаимосвязь между {sentiment, rating} и {sarcasm}, мы перечислим некоторые данные: Sentiment (+1 для положительного, 0 для нейтрального, -1 для отрицательного), Rating (от 0 до 5), Сарказм (1 для Да, 0 для Нет)

(Настроение, рейтинг, сарказм)
(1, 0,5, 1)
(1, 1, 1)
(1, 5, 0)
(-1, 4, 1)
(-1, 1, 0)
... и несколько еще тысяча

Итак, чтобы выяснить фактические отношения, мы хотим поработать над значениями настроения и рейтинга, чтобы каким-то образом получить значение сарказма . Мы будем использовать слои как шаги для перехода от входных данных к выходным. Давайте посмотрим на первый пример (1, 0,5, 1):

Каждая строка в этой сети имеет вес . Мы будем использовать эти веса для вычисления значений в кружках в скрытом слое и в выходном слое (который, как мы надеемся, будет равен «1»). Первоначально мы назначаем веса случайным образом:

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

Скрытый слой 1-го нейрона = type="math/tex" id="MathJax-Element-2">(1*0.2)+(0,5*0,4)знак равно0,4 type="math/tex" id="MathJax-Element-3">

Скрытый слой 2-го нейрона = (1*0,3)+(0,5*0.6)знак равно0.6 type="math/tex" id="MathJax-Element-4">

Скрытый слой 3-го нейрона = (1*0,4)+(0,5*0.7)знак равно0,75 type="math/tex" id="MathJax-Element-5">

Кроме того, мы хотим, чтобы выходные данные (сарказм) были числами от 0 до 1 (потому что больше ничего не имеет смысла). Мы делаем это, используя магическую функцию на выходном слое, которая уменьшает любое заданное число до числа от 0 до 1. Любая функция, которую мы используем в любом нейроне, называется функцией активации, и в этом случае мы используем функцию сигмоида в выходной слой.

Конечный слой = (0,4*0,3)+(0.6*0,4)+(0,75*0,5)знак равно0,735 type="math/tex" id="MathJax-Element-6">

Выход = sяграмммояd(0,735) type="math/tex" id="MathJax-Element-7"> знак равно0,324 type="math/tex" id="MathJax-Element-8">

Итак, у нас есть выход 0.324 . Но мы ожидали 1 ! Так что же нам делать? Мы немного изменили вес, чтобы подтолкнуть вывод к правильному значению . Мы делаем это, используя метод, называемый Обратным распространением, который объясняется в этом блоге.

Мы повторяем это тысячи раз, охватывая все данные тренировок, каждый раз слегка меняя веса. В конце концов, мы получим «правильные» веса, которые лучше всего предсказывают сарказм , учитывая настроение и рейтинг .

Это оно! Большинство приложений нейронных сетей, которые вы видите, являются вариациями вышеуказанной нейронной сети с изменениями в:

  • Структура входов и выходов (дух).
  • Количество скрытых слоев / нейронов.
  • Как нейроны связаны.
  • Учебный процесс.
  • Функция активации.

… И некоторые другие гиперпараметры.

И если вы не заметили, логистическая регрессия - это просто однослойная нейронная сеть. Whaaaaaa

Что еще более важно, можем ли мы воспользоваться моментом, чтобы оценить, насколько идеально круглые эти круги на моих диаграммах? :)

| |



Онлайн-курс
«Всё о блокчейне и криптовалютах»
Один из самых трендовых курсов в сфере Цифровой экономики.