Как классифицировать данные, которые имеют спиральную форму?


9

Я бездельничал на тензорной детской площадке . Один из наборов входных данных представляет собой спираль. Независимо от того, какие входные параметры я выберу, независимо от того, насколько широкую и глубокую нейронную сеть я создаю, я не могу соответствовать спирали. Как ученые данных соответствуют данным этой формы?


Ответы:


11

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

Я не нашел способа сделать это на детской площадке, поэтому я просто создал несколько функций, которые должны помочь с этим (особенности греха). После 500 итераций он будет насыщаться и будет колебаться в 0,1 балла. Это говорит о том, что дальнейших улучшений не будет, и, скорее всего, я должен сделать скрытый слой шире или добавить другой слой.

Не удивительно, что после добавления всего одного нейрона в скрытый слой вы легко получаете 0,013 после 300 итераций. Аналогичная вещь происходит при добавлении нового слоя (0,017, но после значительно более длинных 500 итераций. Также нет ничего удивительного, поскольку распространять ошибки сложнее). Скорее всего, вы можете играть с темпом обучения или адаптивным обучением, чтобы ускорить его, но здесь дело не в этом.

введите описание изображения здесь


Сферические координаты! Напомнил мне о расчете старшекурсника.
Сурадип Нанда,

4
@SouradeepNanda Вы найдете много математических вещей, которые люди находят бесполезными в школе, чрезвычайно важными в ОД
Сальвадор Дали

Просто для таких любопытных, как я, я пытаюсь повторить результаты , но дела идут не так гладко
codevision


3

thetaarctan(y,x)r(x2+y2)

x2y2

введите описание изображения здесь


Можете ли вы рассказать, как вы "обманули"? Как вы добавили эти функции? Вы скачали игровую площадку с GitHub и изменили ее? Или есть более прямой способ сделать это?
Джим

Мне было интересно, как применить этот взлом тоже. Пытался сделать это внутри браузера, но безуспешно. Затем я решил раскошелиться на исходный код и добавил новые функции ввода. Вы можете увидеть это здесь
Cankut

0

ванильное тенорфлоу детская площадка спиральное решение

Это пример ванильной игровой площадки Tensorflow без дополнительных функций и модификаций. Пробег Спирали был между 187 и ~ 300 Эпохами, в зависимости. Я использовал Lasso Regularization L1, чтобы я мог исключить коэффициенты. Я уменьшил размер партии на 1, чтобы избежать чрезмерной подгонки. Во втором примере я добавил шум к набору данных, а затем поднял L1 для компенсации.

введите описание изображения здесь


0

Решение я пришел через час суда обычно сходится всего 100 эпох .

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

! [0,6% тестовая ошибка

Из этого спирального эксперимента я узнал несколько вещей:

  • Выходной слой должен быть больше или равен входному слою . По крайней мере, это то, что я заметил в случае этой спиральной проблемы.
  • Сохраняйте начальную скорость обучения высокой , например 0,1, в данном случае, а затем, приближаясь к низкой ошибке теста, например, 3-5% или менее, уменьшайте скорость обучения на отметку (0,03) или два. Это помогает быстрее сходиться и избегает прыжков вокруг глобальных минимумов.
  • Вы можете увидеть результаты поддержания высокой скорости обучения, проверив график ошибок в правом верхнем углу.
  • Для меньших размеров партий, таких как 1, коэффициент обучения слишком высок, поскольку модель не может сходиться при скачках вокруг глобальных минимумов.
  • Поэтому, если вы хотите поддерживать высокую скорость обучения (0,1), сохраняйте также большой размер партии (10). Это обычно дает медленную, но плавную сходимость.

По совпадению, решение, которое я придумал, очень похоже на решение, предложенное Сальвадором Дали .

Пожалуйста, добавьте комментарий, если вы найдете больше интуиции или рассуждений.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.