Форум программистов, компьютерный форум, киберфорум
ИИ, нейросети, LLM, ML, Data Science, ИИ-агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/88: Рейтинг темы: голосов - 88, средняя оценка - 4.66
45 / 6 / 1
Регистрация: 20.08.2012
Сообщений: 200

Простейшая нейронная сеть для аппроксимации параболы

08.05.2019, 16:18. Показов 20052. Ответов 229
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пробую написать свою первую нс из двух нейронов. На выходе простой сумматор.
http://images.vfl.ru/ii/155731... 2257_m.png
Задаю значения х = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9] и по ним получаю y = (2*x-1)^2 + 0.1 см график ниже
http://images.vfl.ru/ii/155731... 2396_m.png
у - это зеленый точки (соединенные просто для понимания) синими линиями.
y = [0,74 0,46 0,26 0,14 0,1 0,14 0,26 0,46 0,74]. Исходные значения х и y задаю в квадрате 0-1 чтобы избавиться от нужды в нормализации.
Голубая линия - это выход сети (его обозначаю в дальнейшем y1), который получаю так:
сначала задаю случайные веса от -0.5 до 0.5: w = rand(6,1)-0.5; и по ним вычисляю выход сети: y1 = ynet(x, w);
(код на матлабе специально писал предельно просто, развернуто, без матриц)
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function y = ynet(x, w) % ф-ция вычисляет выход сети
for i = 1:numel(x)
  y(i,1) = forward(x(i), w);
end
end
 
function f = forward(x, w)
% y = w5*f(xw1+w3)+w6*f(xw2+w4)
f1 = smd(x*w(1)+w(3));
f2 = smd(x*w(2)+w(4));
f = w(5)*f1 + w(6)*f2;
end
 
function f = smd(x)
f = 1./(1+exp(-x)); % логический сигмойд
end
 
function df = dsm(x)
f = smd(x); df = f.*(1-f); % производная сигмойда
end
Задача ясна: изменить так значения весов w чтобы выходные значения y1 совпали или были близки к истинным y, т.е. минимизировать ф-цию ошибки сети E см ниже
http://images.vfl.ru/ii/155731... 2684_m.png
Пробую это делать тремя способами и ни один не работает и не понимаю почему.

Способ 1.
Нахожу производную от ф-ции ошибки сети по весам (как по формулам приведенным на рис выше) и соответственно ей изменяю веса (w1 = w - a*dE; w = w1)
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function full_x(w, x, y)
a = 0.1;
for i = 1:100
  dE = dE_analytic(w, x, y);
  w1 = w - a*dE;
  er1 = sumerr(x, y, w);
  er2 = sumerr(x, y, w1);
  if er1 < er2
    disp('err')
  else
    w = w1;
  end
end
end
 
function dE = dE_analytic(w, x, y) % ф-ция вычисляет градиент Е по весам w
y1 = ynet(x, w); d = y1 - y;
for i = 1:numel(x)
  de1(i) = d(i)*x(i)*dsm(x(i)*w(1)+w(3));
  de2(i) = d(i)*x(i)*dsm(x(i)*w(2)+w(4));
  de3(i) = d(i)*dsm(x(i)*w(1)+w(3));
  de4(i) = d(i)*dsm(x(i)*w(2)+w(4));
  de5(i) = d(i)*smd(x(i)*w(1)+w(3));
  de6(i) = d(i)*smd(x(i)*w(2)+w(4));
end
dE1 = w(5)*sum(de1);
dE2 = w(6)*sum(de2);
dE3 = w(5)*sum(de3);
dE4 = w(6)*sum(de4);
dE5 = sum(de5);
dE6 = sum(de6);
dE = [dE1 dE2 dE3 dE4 dE5 dE6]';
end
 
function err = sumerr(x, y, w)
temp = [];
for i = 1:numel(x)
  y1 = forward(x(i), w);
  d = y1 - y(i);
  temp = [temp; d*d];
end
err = sum(temp);
end
На выходе получаю (и всегда что-то близкое к этому)
http://images.vfl.ru/ii/155732... 2811_m.png
В чем тут дело? В чем ошибка? Через десяток итераций сеть перестает обучаться.

Способ 2.
Меняю веса по градиенту Е, но вычисленному после каждого x(i) и y(i), но результат такой же, похожий

Способ 3.
Меняю веса через вычисление обратного распространения ошибки
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function backprop(w, x, y)
a = 0.1;
for i = 1:40
  for j = 1:9
    y1 = ynet(x(j), w); d = y1 - y(j);
    d1 = d*w(5); d2 = d*w(6);
    df1 = dsm(x(j)*w(1)+w(3));
    df2 = dsm(x(j)*w(2)+w(4));
    w(1) = w(1)+d1*df1*x(j)*a;
    w(2) = w(2)+d2*df2*x(j)*a;
    w(3) = w(3)+d1*df1*a;
    w(4) = w(4)+d2*df2*a;
    f1 = smd(x(j)*w(1)+w(3));
    w(5) = w(5)+d1*f1*a;
    f2 = smd(x(j)*w(2)+w(4));
    w(6) = w(6)+d2*f2*a;
  end
end
end
Миниатюры
Простейшая нейронная сеть для аппроксимации параболы   Простейшая нейронная сеть для аппроксимации параболы   Простейшая нейронная сеть для аппроксимации параболы  

Простейшая нейронная сеть для аппроксимации параболы  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.05.2019, 16:18
Ответы с готовыми решениями:

Нейронная сеть для аппроксимации
Написал скрипт, для нейронной сети, но при запуске ничего не происходит. clear all N=80; x=rand(1,N); y=(rand(1,N)-0.5)*4; ...

Нейронная сеть для функции
Как написать нейронную сеть для решения такой задачи: У меня есть нейронная сеть. Я хочу ее обучить, например возводить числа в куб. ...

Не работающая нейронная сеть для xor
Проблема описана в заголовке, но тут по-подробнее. Ошибка как бы изменяется в меньшую сторону, но абсолютно не значительно, и как видно...

229
47 / 15 / 1
Регистрация: 26.08.2017
Сообщений: 162
24.06.2019, 20:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
С какого перепугу он это должен?
Ты не фантазируй про "по идее" - а доказывай.
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Доказывай использование вторых производных или любых их оценок (например, левенбергом-марквардтом, в обоих его видах - "наивном" и диагональном ЛеКуновском) в той древней проге.
Более того - доказывай зависимость алгоритма подбора шага обучения (я ведь правильно понимаю слова о "динамической скорости обучения"?) от этих вторых производных.
А когда докажешь - не забудь указать, каков там вклад этих вычислений в общую вычислительную сложность.
Ну не знаю... что тут сказать... Если Вы не знаете что батчи и прочие 2-го порядка методы нужны только чтобы ускорить процесс сходимости, то хз... прочитайте Хайкина или лекции Воронцова посмотрите. У меня чистый классический SGD с моментумом, а Вы говорите что у Вас не константный лернингрэйт и(или) вторые производные используются, это конечно ускоряет процесс но теряеете в устойчивости сходимости, иногда вообще не будет сходиться алгоритм, но зато быстрее, порой на порядок. Но при всём при этом он в ПЯТЕРО МЕДЛЕННЕЙ чем простой SGD с моментумом, это фэйспалм.
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Может, там вычислений делается в 100 раз больше, чем у тебя?
Я начинаю склоняться что возможно так оно и есть, Ваш MLP делает во много раз больше вычислений чем обычный SGD, переборщили Вы видимо с выравниванием, раскручиванием циклов, вынесением индексируемых переменных, регистрами и SIMD командами, что в результате всю эту работу можно смело демонстрировать студентам как пример "заставь "умного" молиться так он лоб побьёт". [CENSORED]
0
2829 / 1686 / 273
Регистрация: 19.02.2010
Сообщений: 4,459
24.06.2019, 21:34
Цитата Сообщение от danila_zaytcev Посмотреть сообщение
батчи и прочие 2-го порядка методы нужны только чтобы ускорить процесс сходимости
Да-да, покажи мне использование батчей и методов второго порядка в современном диплёрнинге
Хоть одну статью найди, где бы на ИмаджНете использовался батч на все 1.2миллиона обучающих примеров, а?
Там МИНИбатчи используются на несколько сотен примеров, что по сравнению с миллионом - доля, которую не видно (и поэтому их правомернее называть недомикробатчами, никакой статистической репрезентативностью не обладающими).
А ведь для обучения на больших базах данных быстрый процесс сходимости актуален - почему же не используют?
В общем, ты, как всегда, смотришь туда (в т.ч. и на Хайкина), что уже как минимум десятилетие назад перестало быть актуальным. Стюардессу уже закопали - а ты её зачем-то откапываешь.


Цитата Сообщение от danila_zaytcev Посмотреть сообщение
Вы говорите что у Вас не константный лернингрэйт и(или) вторые производные используются, это конечно ускоряет процесс но теряеете в устойчивости сходимости, иногда вообще не будет сходиться алгоритм
Ты опять врёшь. Там алг гарантированно сходится (доказано теорией градиентной оптимизации), при этом не требуя от конченого юзера ручного задания величины лёрнингрейта. В отличие от твоего SGD с моментумом, где надо вручную задавать две величины - и верить, что сойдётся.
[CENSORED] А пока не докажешь - я буду продолжать говорить, что ты врёшь.


Цитата Сообщение от danila_zaytcev Посмотреть сообщение
Ваш MLP делает во много раз больше вычислений чем обычный SGD
Ну да - ради комфорта конченого юзера, чтобы тому не настраивать вручную шаги и прочие константы в алгоритме обучения, и чтобы гарантировать сходимость.
Алгоритмы автонастройки (и прочие wizard'ы типа автоподбора размера нейросетки под задачу) - это то, что в любом приличном нейрософте прошлого тысячелетия (да и в том современном - типа нейромодуля пакета Statistica - где по-прежнему реализованы только древние нейронки) было обязательным по дефолту.
В отличие от твоей студенческой поделки, где всё нужно подбирать методом тыка
0
47 / 15 / 1
Регистрация: 26.08.2017
Сообщений: 162
25.06.2019, 12:08
Цитата Сообщение от danila_zaytcev Посмотреть сообщение
Ваш MLP делает во много раз больше вычислений чем обычный SGD
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Ну да - ради комфорта конченого юзера, чтобы тому не настраивать вручную шаги и прочие константы в алгоритме обучения, и чтобы гарантировать сходимость.
Ну вот и разобрались, дамы и господа, присяжные и заседатели. И зачем было подымать столько пыли. Жертва производительности ради комфорта юзера, вопросов нет.
0
2829 / 1686 / 273
Регистрация: 19.02.2010
Сообщений: 4,459
25.06.2019, 21:24
Цитата Сообщение от danila_zaytcev Посмотреть сообщение
Ну вот и разобрались
Я правильно понимаю, что ты хочешь соскочить так, чтобы все забыли твоё явное враньё про вторые производные?
Враньё это было с самого начала очевидно всем, знакомым с градиентными методами оптимизации, и поэтому знающими, что ни в методе сопряжённых градиентов, ни в квазиньютонах вторые производные не вычисляются ни в каком виде. Аналогично и с методами одномерной оптимизации (применяемыми для выбора длины шага).
Увы, ты настолько замазался во вранье, что тебе выгоднее было бы признаться в простой некомпетентности (или таки в шизофрении). Но раз не признаёшься - я буду напоминать, что ты соврал.


Цитата Сообщение от danila_zaytcev Посмотреть сообщение
Жертва производительности ради комфорта юзера
Я правильно понимаю, что тебя можно обозвать жертвой твоей собственной некомпетентности - ибо ты не можешь реализовать методы, снимающие проблему ручной настройки, и гарантирующие сходимость?
Извини, но всех, врукопашную подбирающих приемлемые настройки методом случайного тыка, всегда называли либо нубами - либо таки некомпетентными (в т.ч. и тогда, когда люди полагались на некие дефолтные константы, думая, что они будут применимы всегда и везде, и не удосуживаясь проверять справедливость/правильность этих настроек в каждой новой задаче).
Также напоминаю народу, что ты продолжаешь сопоставлять РАЗНЫЕ алгоритмы, причём и скомпилированные с разницей в 2 десятилетия (т.е. когда древняя прога ничего не знает об особенностях/возможностях современных процессоров). За такое жульничанье жулика в приличном обществе бьют канделябрами
0
47 / 15 / 1
Регистрация: 26.08.2017
Сообщений: 162
27.06.2019, 13:30
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
знакомым с градиентными методами оптимизации, и поэтому знающими, что ни в методе сопряжённых градиентов, ни в квазиньютонах вторые производные не вычисляются ни в каком виде
Какой кошмар...
[CENSORED]

[CENSORED]

Всё, в дальнейшую полемике не вижу смысла, [CENSORED]
0
2829 / 1686 / 273
Регистрация: 19.02.2010
Сообщений: 4,459
27.06.2019, 21:53
Фиксирую твоё очередное враньё - ты не предоставил никаких доказательств (да и не смог бы предоставить), что сопряжённые градиенты и квазиньютон ХОТЬ КАК-ТО вычисляют вторые производные.

Цитата Сообщение от danila_zaytcev Посмотреть сообщение
эвристики упомянутые Вами(сопряжённые градиенты и квазиньютоны), были созданы чтобы облегчить вычислительные трудности работы с гессианом
Для чего они были созданы - совершенно другое дело. А в их явных мат.формулах - вторых производных нет! Ни одной
[CENSORED]

[CENSORED]
0
47 / 15 / 1
Регистрация: 26.08.2017
Сообщений: 162
28.06.2019, 13:06
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
ты не предоставил никаких доказательств (да и не смог бы предоставить), что сопряжённые градиенты и квазиньютон ХОТЬ КАК-ТО вычисляют вторые производные.
Речь шла о МЕТОДАХ ВТОРОГО ПОРЯДКА, [CENSORED]

Виктор Геннадиевич, это мой последний ответ Вам [CENSORED]

Удачи.
0
120 / 40 / 9
Регистрация: 29.10.2016
Сообщений: 243
28.06.2019, 14:39
Для двух точек можно только вычитать одну из другой. По трем можно сделать очень грубое предположение о второй производной, в очень многомерном пространстве практически бесполезное. А по четырем уже можно оценивать качество этого предположения. То есть нужен метод третьего порядка чтобы методы приближенного второго были хоть немного обоснованы.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
30.06.2019, 21:13
Странно почему модератор не убирает море флеима и оффтопа.

Цитата Сообщение от tur9 Посмотреть сообщение
на изображении по куску контура падающих таблеток находить их центр.
У вас задача решить задачу или сделать это именно через нейросеть? Изучали как эту задачу уже решали в производстве?

Наверно в промышленности это давно решает некий вибрирующий стенд где тысячи этих таблеток произвольно ориентированных в 3д от вибрации ориентируются правильно падая в трубочки. Затем чисто механикой подаются по одной. Или вибростенд подает таблетки по одной где дальше чисто простой механикой разделяет поштучно.
В гугле набрал
“автомат подачи заготовок”
“Автоматические загрузочные устройства для подачи штучных заготовок”
Вариантов реализаций море.
https://studref.com/htm/img/39/7730/57.png
0
2829 / 1686 / 273
Регистрация: 19.02.2010
Сообщений: 4,459
30.06.2019, 22:38
Цитата Сообщение от danila_zaytcev Посмотреть сообщение
Речь шла о МЕТОДАХ ВТОРОГО ПОРЯДКА
Не ври.
Ты прогнал (пост #79 на четвёртой странице темы), что в некоторой вполне конкретной проге используются методы второго порядка. Хотя в настройках проги используемые методы перечислены явно - и это не методы второго порядка.
После этого - не соскакивай на разговор "в общем", о методах второго порядка в вакууме. А давай отвечай за свой базар, врун.

Цитата Сообщение от danila_zaytcev Посмотреть сообщение
Но классическими являются именно методы второго порядка
Снова прошу найти и показать ХОТЬ ОДНУ современную (для сегодняшних реалий - для сегодняшних размеров задач, для сегодняшних размеров глубоких нейросеток) статью, где использовались бы методы второго порядка, работающие со ВСЕМ гессианом (ибо с прошлого тысячелетия есть нейросетевой алг, быстро=эффективно вычисляющий только диагональ гессиана - и тут его не берём).
Но ты же не найдёшь. А если найдёшь - то для тех размеров нейросеток, которые использовались в прошлом тысячелетии (1-2-3 десятка нейронов, копеечное число входов). Ибо те, кто занят в современной нейросетевой индустрии и решают современные задачи (с современными размерами нейросеток) - таки поумнее тебя и им нафиг не упёрлась работа с матрицами с сотнями тысяч и даже миллионами строк-столбцов, ибо бОльшее число итераций более простого алгоритма оптимизации выполнится=сойдётся быстрее.

Но как вариант подтверждения [CENSORED] - давай покажи, как у тебя сработает метод Ньютона на задаче MNIST (28*28=784 входных сигнала, 10 выходов) и MLP хотя-бы с 300 нейронами в скрытом слое (это примерно точка выхода на асимптоту точности - дальнейшее увеличение размера практически ничего не даёт, если не подключать дропаут). В матрице Гессе выходит (784+1)*300+(300+1)*10=238510 строк и столько же столбцов (двойное вхождение +1 в выражении - для учёта бивисов). Это >56 МИЛЛИАРДОВ элементов, и, в итоге, 227.5 ГИГАБАЙТ памяти при использовании 4байтовых флоатов. Вперёд, покажи, как ты будешь вычислять, обращать, использовать такую матрицу на персоналке/ноуте
[CENSORED] задачи CIFAR10 / CIFAR100, там 32*32=1024 пиксела в картинках, немногим больше 784рёх МНИСТовских. Но число элементов-то в гессиане увеличится квадратично
В общем, я фиксирую твою очередную некомпетентность - когда в теме про нейросетки ты пытаешься нести бред, предлагая использовать методы, которые использовать просто физически невозможно (без постоянного свопа их "внутренних" данных на диск) даже для задач (MNIST), появившихся ещё в прошлом тысячелетии.


[CENSORED]

[CENSORED]

Цитата Сообщение от danila_zaytcev Посмотреть сообщение
дальнейшее общение вижу бессмысленным.
[CENSORED]опробуй прикинуть размеры возникающих массивов данных для современных задач - а не для задачи ХОР А метод Ньютона в вакууме - обсуждается в совсем ином разделе форума (Математика -> Методы оптимизации).

Добавлено через 12 минут
Ой, вспомнил, что у Цифаров не ч/б, а цветные картинки - т.е. каждый пиксел превратится в 3 входа (и внезапно так пара см воды в бассейне превращается в рост числа элементов матрицы Гессе почти на порядок, ибо 3*3=9). Но я верю, что ты сможешь ворочать матрицу терабайтных размеров [CENSORED]
0
45 / 6 / 1
Регистрация: 20.08.2012
Сообщений: 200
01.07.2019, 10:41  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
У вас задача решить задачу или сделать это именно через нейросеть? Изучали как эту задачу уже решали в производстве?
Да, задачу отбраковки таблеток решают через механическое их разделение. Но это сопряжено с механической ненадежностью этих механизмов разделения. Да и какая необходимость разделять если можно не разделять, достаточно чтобы они были в одной плоскости. Есть машины включенные в производство таблеток и там все разделено и есть машины на упаковке. Мой вариант - упаковка. НС не обязательна. Вариант аппроксимации заданным эллипсом я уже сделал. Он получился громоздким (пробовали вычислять расстояние от точки до эллипса?). Кроме того таблетки бывают самой причудливой формы, не эллипсойдной. Кроме того есть два проекта: один - фото при падении, второй - на конвейере. И там и там нужен надежный механизм нахождения центра таблетки по куску ее контура.
0
01.07.2019, 11:48
 Комментарий модератора 
Убедительно прошу снизить накал дискуссии не переходить на личности.
0
120 / 40 / 9
Регистрация: 29.10.2016
Сообщений: 243
01.07.2019, 15:18
В реальных задачах соотношение числа имеющихся примеров и числа возможных точек в пространстве таково, что о какой-то гладкости рассуждать не приходится. Поэтому от второго порядка выигрыш даже теоретически вряд ли будет.
В базе MNIST наверняка нет ни одной точке, для которой в этой базе есть соседи по всем размерностям, и можно было бы посчитать гессиан.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
01.07.2019, 19:50
По телику показывали конвейер чипсов, сотня чипсов широкой полосой пролетает над узкой прорезью по инерции и форсунки воздухом сдувают брак без всяких поисков центра. Другое дело что там камера скоростная и определяет брак визуально…
Гляньте в OpenCV может там давно есть все это дело.
Может даже тут
opencv_features2d — распознавание и описание плоских примитивов
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
01.07.2019, 21:58
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
на контрастном фоне искать области пикселов другого цвета (таблеточные). И затем простое вычисление среднего координат пикселов в каждой несвязной области сразу даст Вам центр соответствующей таблетки независимо от её поворота
растр
порог
размытие
порог
размытие
порог

Затем наверно поиск центра масс отдельных областей.
Название: ScreenShot00877.jpg
Просмотров: 41

Размер: 16.4 Кб
И это еще фотка левая, подсветка неудачная. Может если таблетки блестящие а подсветка точечная пару мм яркий источник прям над таблетками то блик на таблетках точка почти центр…Или подсветка снизу матовая при ярком источнике таблетки может быть полупрозрачны и четче виден центр…хз.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
01.07.2019, 22:21
Структурированный свет, спец тип подсветки для сканеров.
https://cybercom.ru/info/artic... d-skanery/

Можно использовать то что это конвейер и снимать только одну полосу от лазера
Тогда по сдвигу пикселей строить 3д поверхность. Тут вариантов наверно тоже навалом как и методов скана.
0
2829 / 1686 / 273
Регистрация: 19.02.2010
Сообщений: 4,459
01.07.2019, 22:32
Цитата Сообщение от NO_ Посмотреть сообщение
Поэтому от второго порядка выигрыш даже теоретически вряд ли будет.
Дело не в этом - а в том, что Данила не представляет себе
1) ни размеров матриц, возникающих у методов второго порядка, если ими пытаться обучать нейросетки чему-то нужному именно сегодня (а не задаче ХОР и прочим игрушкам каменного века),
2) ни размеров матриц, при которых у алгоритмов обращения ещё не начинают накапливаться ошибки округления,
3) ни времязатратности, которое потребуется даже квадратичному (см его фантазию) алгоритму обращения при матрице даже 8000*8000 (это, напоминаю, примерно будет соответствовать задаче МНИСТ и MLPшке с 10 скрытыми нейронами, что для МНИСТ очень и очень мало).
Т.е. обычная программистская некомпетентность (отсутствие прикидок размеров массивов) и незнание границ эффективной применимости алгоритмов. То же самое - что чуть раньше видели в его коде (если это таки его код) обращения матриц - отсутствие контроля за возможным делением на ноль (программистская некомпетентность) и выбор алгоритма, который не способен обратить ни одну матрицу с хотя-бы одним нулевым элементом (незнание границ применимости взятых методов). Как видим - стабильно одно и то же При стабильных же обидах, когда ему указывают на ошибки/незнание/бред.

Цитата Сообщение от NO_ Посмотреть сообщение
В базе MNIST наверняка нет ни одной точке, для которой в этой базе есть соседи по всем размерностям, и можно было бы посчитать гессиан.
Да никто в нейросетках уже четверть века гессиан целиком и отдельно не считает.
Считают (точным и быстрым алгоритмом, по времени ~~ как обычное вычисление градиента бэкпропом или ~~ как вычисление диагонали гессиана, т.е. времязатраты от числа синапсов в сети зависят линейно) сразу результат произведения гессиана на вектор.
Но при этом надо добавочно знать, где затем используется именно произведение гессиана на вектор (а не произведение обратного гессиана на вектор, как в Ньютоне)
Т.е. нет ни затрат памяти, пропорциональных квадрату весов в сети, ни времязатрат на вычисление отдельного гессиана, тоже пропорциональных квадрату числа весов, ни обращения гессиана (а тут увы - уже кубическая вычислительная сложность будет), ни вычисления гессиана отдельно с целью последующего домножения на вектор (квадратичные сложность и расход памяти, в отличие от этого алгоритма, сразу вычисляющего результата произведения).
0
120 / 40 / 9
Регистрация: 29.10.2016
Сообщений: 243
02.07.2019, 00:28
В нейросетях всё в практике. Без этого будет журналистика, как Egg говорит.
Или он начинающий ПМ раз много обижается.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
02.07.2019, 11:15
Как ваши обсуждения VTsaregorodtsev, danila_zaytcev, NO_, относиться к теме ТС?
0
45 / 6 / 1
Регистрация: 20.08.2012
Сообщений: 200
02.07.2019, 15:14  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
растр
порог
размытие
порог
размытие
порог
я сделал проще: нашел контуры и разрезал их на дуги. Осталось объединить дуги принадлежащие одной таблетке.
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Можно использовать то что это конвейер и снимать только одну полосу от лазера
Тогда по сдвигу пикселей строить 3д поверхность. Тут вариантов наверно тоже навалом как и методов скана.
3д поверхность не нужна, для проверки достаточно 2д. Проблема только в одном: отнести дуги к объектам и т.о. соединить дуги. Если всегда по дуге будет найден центр таблетки, то дугу всегда можно будет отнести к своей таблетке. А здесь проблема в том что таблетки могут быть произвольно ориентированы в пространстве и по кускам их контуров не просто найти центр.
Я предельно упростил задачу и решил ее пока только для одинаковых дуг равных четвертинкам окружности и без всяких изменений ориентации в пространстве. Получилась простая сеть из одного слоя в шесть нейронов. Дуги переменной длины эта сеть уже не тянет. Непонятно куда двигаться дальше: толи увеличивать число нейронов в одном слое, толи увеличивать число слоев. А может еще что-то возможно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2019, 15:14
Помогаю со студенческими работами здесь

Нейронная сеть для распознавания лиц
Всем привет!) Хочу посоветоватся с людьми которые знакомы с нейронными сетями. Суть дела такова, мне необходимо запрограмировать систему...

Нейронная сеть для распознавания образов
Нужно сделать нейронную сеть для распознавания образов. Кто делал такое? Где проще это делать? Где есть нормальные гайды? Думаю между...

Нейронная сеть для распознавания чисел
так и не нашел полезного гайда по созданию нс. задание такое: написать нейронку, которая может распознавать числа и обучить ее. т.е я...

Нейронная сеть для распознавания чисел
Народ, дано вот такое задание: Создать нейронную сеть для распознавания десяти чисел, по одному из следующих методов: 1) Трехслойная...

Нейронная сеть для сайта Asp.net
Подскажите, надо для учебы разместить нейронную сеть(любую) на сайте. Можете подкинуть какую-нибудь литекратуру для этого. Сайт обычный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru