Поэкспериментируйте с игровой площадкой TensorFlow.
играл давноTensorFlow Playground, но в то время была только простая концепция нейронной сети, и я не понимал значения различных параметров, я нажимал их случайным образом и пытался много раз, но не смог успешно классифицировать спиралевидный набор данных.
Сейчас курс Эндрю Нг изучен более чем наполовину (студенты, которым интересны конспекты предыдущего курса Нг, могут посетитьЛинейная регрессия,логистическая регрессияиНейронные сети), поиграв снова на основе понимания, у меня действительно был другой опыт. А поскольку TensorFlow Playground имеет открытый исходный код (код лаконичный и аккуратный), вы можете вернуть исходный код и играть по-своему~
Итак~, мой игровой процесс состоит в том, чтобы изменить игровую площадку TensorFlow, чтобы просмотреть содержание предыдущих курсов Ng.Ниже приведена ссылка на игровой процесс. Если у вас есть интересные способы игры, оставьте сообщение и расскажите мне (●—●) ~
Линейная регрессия
- Подключите все функции напрямую к OUTPUT
- Когда тип проблемы выбран как Регрессия (проблема регрессии), функция активации ВЫХОДА по умолчанию использует Линейную (это Идентичность, см. раздел функции активации), поэтому выход всей сети такой же, как функция прогнозирования линейной регрессии. .
- Алгоритм обучения, используемый нейронной сетью, обратное распространение, Согласно цепному правилу, вы обнаружите, что после того, как мы подключим сеть таким образом, метод обновления весов будет таким же, как и у линейной регрессии.
- Вы можете добавить полиномиальные функции высокого порядка, чтобы улучшить способность сети к обучению (не забудьте добавить их в часть кода сериализации, чтобы ваш статус выбора был записан, поэтому вам не нужно повторно выбирать функции по одной). каждый раз по одному)
- Стандартизация, стандартизируйте характеристики (учтите, что Стандартизация должна быть сделана обязательно, иначе ваша функция потерь улетит в один миг, и вы вообще не доберетесь до дна)
логистическая регрессия
- Подключите все функции напрямую к OUTPUT
- Когда тип проблемы — Классификация (задача классификации), функция активации ВЫХОДА по умолчанию — Танх, поэтому мы изменим ее на Сигмоид, чтобы вывод всей сети был таким же, как функция прогнозирования логистической регрессии.
- Измените исходные результаты набора тестов с 1, -1 на 1, 0.
- Добавьте новую функцию потерь, чтобы после цепного правила веса обновлялись так же, как при логистической регрессии.
- Добавьте полиномиальные функции высокого порядка
- Стандартизация, стандартизация функций
- Измените значение решения границы решения с 0 на 0,5 (поскольку выход сети стал с 0 на 1)
Нейронные сети
- Согласно ВикиФункция активациипопробовать разные функции активации
- Изменить ограничение сетевого уровня
- Изменить ограничение количества нейронов в каждом слое сети
Tips
- Веса связанных нейронов можно изменить вручную
- Левый нижний угол каждого нейрона в скрытом слое можно наблюдать вручную, чтобы настроить Байс.
- Наведите курсор на нейрон, чтобы увидеть его выходные данные справа
- Пошаговое выполнение может помочь вам отладить правильность измененного кода (вывести некоторые промежуточные вычисления).
- Кривая обучения может помочь вам определить, сталкивается ли ваша модель с проблемой высокого смещения или высокой дисперсии.
- Если вы хотите, чтобы веса не были слишком большими, чтобы вызвать переоснащение, вы можете использовать регуляризацию L1 или L2.
hertzcat
2018-04-27