localStorage располагает как минимум 5 Мб для хранения данных (этот размер поддерживается всеми основными веб-браузерами), что на порядок больше, чем у cookie-файлов (~ 4 Кб)
Занудство: на три порядка больше. Но я восхищаюсь темпами развития технологии, при которых прирост в 10 раз вообще ничего не значит, а переход от килобайтов к мегабайтам — это переход «на порядок». Предлагаю придумать новое русское выражение, которое бы передавало смысл фразы «на порядок больше» при сравнении килобайтов с мегабайтами.
Только практика может ответить на этот вопрос. Проверьте свою схему и напишите статью на Архив.
Я бы применял их схему чуть попозже, после первоначального грубого обучения. Например, первые слои уже обучились типовым фильтрам Габора. Но это только мое предположение, все надо проверять. В этом и заключается эмпирический подход.
При «холодном» рестарте коэффициенты сети случайно инициализированы, и их надо долго обучать. При рестарте с локального минимума у нас уже в принципе обученная сеть, дальнейшее обучение будет только слегка изменять значения весов.
Почему у комментаторов сложилось впечатление, что авторы первой статьи плохо обучили baseline?
ResNet-110, Cifar-10 Оригинальная статья авторов архитектуры ResNet
Смотрим таблицу 6: ошибка классификации на CIFAR-10: 6.43 (6.61±0.16)
Статья про «отжиг» (ансамбль снимков модели): Фигура 1.2 — ошибки классификации CIFAR-10
Resnet-110 Single Model: 5.52 (по оригинальной статье)
Resnet-110 Snapshot Ensemble: 5.32
Результаты второй статьи и мне показались слабоватыми. Что касается первой, то речь ведь не идет об ускорении обучения как такового. За время обучения одной модели формируют N моделей для ансамбля.
По поводу гуглоперевода, коллега, попросил бы не бросаться обвинениями.
Чтобы дискуссия не была поверхностной, предлагаю простой эксперимент. Запустим скрипт оптимизации, приведенный в статье, для разный уровней сложностей.
Модифицированный код
import numpy as np
from matplotlib import pyplot as plt
def f(w): return -np.sum((w - solution)**2)
npop = 50 # population size
sigma = 0.1 # noise standard deviation
alpha = 0.001 # learning rate
N = 1000 # iterations number
SIZE = 10 # task size (times 3)
w = np.random.randn(SIZE *3) # initial guess
solution = np.array([0.5, 0.1, -0.3] * SIZE).flatten()
graph = np.zeros(N)
for i in range(N):
N = np.random.randn(npop, SIZE * 3)
R = np.zeros(npop)
for j in range(npop):
w_try = w + sigma*N[j]
R[j] = f(w_try)
A = (R - np.mean(R)) / np.std(R)
w = w + alpha/(npop*sigma) * np.dot(N.T, A)
graph[i]= f(w)
plt.figure()
plt.plot(np.log(-graph))
plt.show()
Уровень сложности задачи определяется только размерностью вектора параметров w. Вот табличка достигнутой погрешности решения и затраченного числа итераций для разного уровня сложности:
Размерность w Число итераций Погрешность (f(w))
3 250 10E-12
30 1000 10E-7
300 2500 10E-3
3000 7000 10E0
30000 >20000 Не доучилась за полчаса, см. график
По-моему совсем неплохой результат для задачи, которая в принципе никак не ограничена дифференцируемостью функции, числом шагов эмуляции эпизода и т.п. Никаких оптимизаций в коде не проводилось, очевидно что нужно постепенно снижать скорость обучения и т.п.
Ну вот Вам понятно, а этим господам непонятно: Andrej Karpathy, Tim Salimans, Jonathan Ho, Peter Chen, Ilya Sutskever, John Schulman, Greg Brockman & Szymon Sidor.
Вы считаете задачу обучить машину играть в игры для Атари имея на входе только скриншоты "совсем несложной системой"? На этой задаче предложенный алгоритм работает наравне с reinforced learning, в каких-то играх побеждает, в других немного отстает.
Занудство: на три порядка больше. Но я восхищаюсь темпами развития технологии, при которых прирост в 10 раз вообще ничего не значит, а переход от килобайтов к мегабайтам — это переход «на порядок». Предлагаю придумать новое русское выражение, которое бы передавало смысл фразы «на порядок больше» при сравнении килобайтов с мегабайтами.
Я бы применял их схему чуть попозже, после первоначального грубого обучения. Например, первые слои уже обучились типовым фильтрам Габора. Но это только мое предположение, все надо проверять. В этом и заключается эмпирический подход.
Гуглоперевод, говорите…
ResNet-110, Cifar-10
Оригинальная статья авторов архитектуры ResNet
Смотрим таблицу 6: ошибка классификации на CIFAR-10: 6.43 (6.61±0.16)
Статья про «отжиг» (ансамбль снимков модели): Фигура 1.2 — ошибки классификации CIFAR-10
Resnet-110 Single Model: 5.52 (по оригинальной статье)
Resnet-110 Snapshot Ensemble: 5.32
Остальные результаты тоже можно проверить.
Все-таки скорость обучения тоже важна если данных много, GPU не топовый, модель сложная, идей много надо проверить…
По поводу гуглоперевода, коллега, попросил бы не бросаться обвинениями.
Уровень сложности задачи определяется только размерностью вектора параметров w. Вот табличка достигнутой погрешности решения и затраченного числа итераций для разного уровня сложности:
По-моему совсем неплохой результат для задачи, которая в принципе никак не ограничена дифференцируемостью функции, числом шагов эмуляции эпизода и т.п. Никаких оптимизаций в коде не проводилось, очевидно что нужно постепенно снижать скорость обучения и т.п.
График обучения при сложности 30:
График обучения при сложности 300:
График обучения при сложности 3000:
График обучения при сложности 30000:
Ну вот Вам понятно, а этим господам непонятно: Andrej Karpathy, Tim Salimans, Jonathan Ho, Peter Chen, Ilya Sutskever, John Schulman, Greg Brockman & Szymon Sidor.
Статья не об этом. Но я желаю Вам успеха.
Вы считаете задачу обучить машину играть в игры для Атари имея на входе только скриншоты "совсем несложной системой"? На этой задаче предложенный алгоритм работает наравне с reinforced learning, в каких-то играх побеждает, в других немного отстает.
Поиск https://www.google.ru/search?client=ubuntu&channel=fs&q=трехмерная+бинокулярная+камера результата не дал. Не могли бы раскрыть информацию по трехмерной бинокулярной камере от Элвис?
Роботы пишут обзорные статьи по ИИ.