GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (36)След. > >>   Поиск:  
 Автор Тема: Нейронная сеть - не нейронная сеть.
гость
188.43.30.*
Нейронная сеть - не нейронная сеть.
+2
Добавлено: 20 ноя 16 2:18
Вообще не люблю нейронные сети, по тому что не понимаю, как они работают. Честно пытался разобраться, но пришёл к выводу, что ум, ума не добавляет. Вроде бы всё логично и выводы делаются последовательно, а после прочтения очередного материала по теме, остаётся ощущение, что провели по проторённой дороги как телёнка и поставили в стоило жвачку пережёвывать. То, что изначально первопроходцы свернули куда-то не туда некого не смущает, теория то стройная, а искусственного интеллекта до сих пор нет – значит недоросли.
Вот здесь и всплывает первая проблема обучения. Новая базовая информация усваивается быстро, формируя каркас будущего представления о теме. И если изначально закралась ошибка, произойдёт перекос всей модели, который даже на ранних этапах корректировать запыхаешься. А если этот кривой каркас обрастёт дополнительной информацией – всё, меняйте сферу деятельности, в этой вы свой шанс упустили. Существует конечно информация, не вписывающаяся в текущие представления, которая в состоянии «порвать шаблон» и привести знания в порядок – но это редкое везение.
Отсюда первая проблема искусственного интеллекта в целом и нейронных сетей в частности – такой кривой каркас скопипастить получилось, что глаза радуются. Поэтому, ко всякого рода трудам в данной области я отношусь со скептицизмом. Отдельно биология – да. Отдельно математика – да. И даже по философии с программированием – я бы тоже не отказался почитать что ни будь для общего развития. Но когда всё это в куче и переправлено бытовыми наблюдениями, на уровне которых и предполагается вести дискуссию, картина научной стройности теряет весь свой лоск, превращаясь в детскую мазню. Ну это мой субъективный взгляд делитанта.
И поэтому, не апеллируя к мнению авторитетов, я творил в меру своей испорченности не зная, что есть такие вещи как генетические алгоритмы или клеточные автоматы, возился с чем-то подобным. Во всех случаях вывод был однозначен – само хорошо не получится. Зачем создавать программу которая будет делать «что-то такое, как-то так». Если уж делать, то программу с конкретными возможностями. Но тем неимение, именно опыт возни с этими эрзац решениями привёл к возникновению ряда вопросов. Как представлять информацию для передачи её в главный алгоритм. Как обучать. Как инициализировать события (которые в ООП) в главном алгоритме. Как хранить приобретённые знания. Вопросы появлялись именно в таком порядке.
Где-то получалось делать решения о многих костылях и на этом прорывается дальше, и опять при помощи напильника брать баррикады логики. Но каждый раз, когда вставал вопрос памяти, это было подобно устранению течей зубочистками в дуршлаге, на втором круге уже забываешь, что делал в первый раз и по чему именно так, а вода всё течёт, но вроде меньше чем раньше. В итоге решение получалось настолько гротескным, что его можно было ставить в один ряд с горгульями парижского собора, ибо хрен один не работало.
Но тем неимение, отсутствие результата тоже результат. И действительно, каждая попытка создать память привадила к созданию чего-то что можно назвать нейронной сетью. Ячейки памяти, которые что-то обозначают, и связи между ними, которые всё определяют, что и выявляло ключевую роль связей как мне казалось.
В моём представлении, сформированном ещё в школе, нейрон выполнял роль материального воплощения пороговой функции и функцию транспортировки сигнала. Забегая немного в перёд, скажу, что сейчас мне кажется, что нейрон на поверхности своей синоптической мембраны из синапсов, формирует логические группы «И» с их взаимодействием в логике «ИЛИ». Тем более, хотя описание таких процессов я и не встречал, гипотетически такая возможность существует, так как у синоптической мембраны есть свойства позволяющие такой механизм реализовать – при уменьшении площади синоптической связи, освобождённая поверхность мембраны на какое-то время становится не восприимчива к нейромедиаторам.
Действительно, когда я подошёл к созданию ИИ со стороны памяти, я столкнулся, с проблемой. Если активация нейрона происходит, при появлении определённой суммы взвешенных сигналов, то что произойдёт, если после обучения ряд незначительных сигналов перестанет поступать из-за изменения условий. То есть сигналы, обладающие маленькой массой из-за своей незначительности, важны в рамках нейронной сети. С другой стороны, комбинация слабых сигналов, свидетельствующих о наступлении события, будут проигнорированы из-за отсутствия какого-то ключевого тяжёлого сигнала.
Конечно – это редкий случай, скорее всего возникающий из-за ошибок в процессе обучения, но это возможно, а значит требуется принимать меры для исключения подобного. А я для этого слишком ленивый, значит подобное возникать не должно. То есть, нейрон, должен представлять из себя не просто пороговую функцию, а алгоритм, определяющий важность каждого поступающего сигнала.
Готового решения у меня нет, я не смог найти подходящий математический метод. Я просто игнорирую слабые сигналы, до тех пор, пока не возникнет ситуация (не произошло активации ни одного нейрона слоя), когда сильных сигналы окажется недостаточно. При этом возникла необходимость в двух видах порога. Первый отвечает за узнавание, когда сильные сигналы есть, но амплитуда сигнала не может преодолеть порог. Второй порог как раз и отвечает за отсечение шума из слабых связей и олицетворяет, поиск нового решения. Но при этом, сложной, но решаемой задачей, является выбор правильного момента для понижения того или иного порога, для всей сете или только для одного нейрона, что сопровождается процессом перераспределения масс связей – то есть обучением.
Что ещё меня не устраивает, в нейронных сетях. В повествовании это идёт на втором месте, но по значимости стоит на первом. Я не понимаю, как обучают нейронные сети, в теории конечно рассматривал, а вот с практическим представлением, что же это за хрень такая я разобраться не смог. Опять же, само хорошо не заработает. Нужно понимать, что сейчас изучается, как и к каким результатом приведёт, а не лепить горбатого, а потом радоваться, что заработало.
Я по своей наивности и с деревенской прямотой, подошёл к проблеме распределения масс связей, без математики, только на логике. Если нейрон что-то олицетворяет значит масса связи показывает, как коррелирует то что олицетворяет нейрон и событие приведшее к возбуждению связи. Если 100% корреляция, то значит, и масса связи максимальна, если корреляции нет, то и массы у связи нет. Для расчётов, метод я брал отсюда http://www.bestreferat.ru/referat-111115.html, ибо он и предназначен для работы с коррелирующими событиями. Ну по крайней мере я так думаю.
Для школьников, если тут такие есть, поясню, что сам нейрон коррелирует с собой на 100%. Следовательно, в найденную линейную функцию описывающую текущее состояние связей, вместо Х подставляем максимально возможное значение сигнала. И я тут затронул тему амплитуды сигнала, думаю понятно, что это и зачем, поэтому углубляться не буду.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 2:39
>>> 188.43.30.*

(дочитал только до середины)

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

Вы совершенно точно описали то что происходит на форумах. НО это не научные работы.
Почитайте нормальные статьи. Во-первых, в них всегда ставится определенная и очень четкая тема исследования, во-вторых, результаты точно такие же четкие и обоснованные либо теоретически, либо практически (либо и так и так). Никакой "детской мазни" вы там не обнаружите, даже если это работа с сильным уклоном в философию.

Так что, не надо форумы и то что в них происходит, отождествлять с площадками для публикации серьезных исследований. Это даже на песочницу не тянет, это не более чем курилка в тамбуре поезда.
[Ответ][Цитата]
victorst
Сообщений: 821
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 3:23
Изменено: 20 ноя 16 3:28
С самого начала, когда придумали первый примитивный искусственный нейрон (ИН), мысли ученых направились немного не туда.
Из того факта, что ИН отдаленно похож на естественный нейрон, не следует, что из них можно собрать только ИИ систему.
Очевидно, что из таких деталей, как ИН можно собрать множество более сложных конструкций с совершенно разными принципами работы этих конструкций. Аналогично произошло с транзисторами (хотя прямого аналога транзистора в природе нет), когда на их основе стали делать и аналоговые радиоприемники и цифровые вычислительные машины и много еще чего.
На сегодняшний день не существует единой целостной теории сложный нейросетевых структур, частным случаем которых мог бы быть искусственный мозг.
Вернемся к ИН. Несмотря на способность избретенной Розенблаттом конструкции персептрона к обобщению на этапе обучения и классификации в рабочем режиме, скорее всего именно такого прототипа в живом мозге не существует. Наверное потому, что реальные нейроны мозга могут работать в одном совмещенном режиме.
Конечно, придумали ИНС с изменяющимся количеством связей между нейронами и количеством самих нейронов. И даже придумали сети с совмещенным режимом (Например, иерархическая темпоральная память).
Но даже при беглом взгляде видно. что их конструкции и принципы действия еще более далеки от естественной нейросети.
Я предлагаю порассуждать, какие же операции нужно позаимствовать от природы для создания ИИ систем.
Я нахожу много общего в экспертных системах, ИНС и других, казалось бы, совсем далеких от них технических системах.
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 3:41
Изменено: 20 ноя 16 3:42
Цитата:
Автор: гость
Вообще не люблю нейронные сети, по тому что не понимаю, как они работают. Честно пытался разобраться, но пришёл к выводу, что ум, ума не добавляет. Вроде бы всё логично и выводы делаются последовательно, а после прочтения очередного материала по теме, остаётся ощущение, что провели по проторённой дороги как телёнка и поставили в стоило жвачку пережёвывать. То, что изначально первопроходцы свернули куда-то не туда некого не смущает, теория то стройная, а искусственного интеллекта до сих пор нет – значит недоросли.
Вот здесь и всплывает первая проблема обучения. Новая базовая информация усваивается быстро, формируя каркас будущего представления о теме. И если изначально закралась ошибка, произойдёт перекос всей модели, который даже на ранних этапах корректировать запыхаешься. А если этот кривой каркас обрастёт дополнительной информацией – всё, меняйте сферу деятельности, в этой вы свой шанс упустили. Существует конечно информация, не вписывающаяся в текущие представления, которая в состоянии «порвать шаблон» и привести знания в порядок – но это редкое везение. ...

Вот это "редкое везение" Вам и следует реализовать. Не детские мазни в научных публикациях Вам в этом не помогут, но знать их по мере возможностей и времни необходимо.
На мой не просвещенный взгляд, следовало бы как можно чаще "размывать" свои цели/вопросы, "разглядывать" не слона (искусственно "размытые" представления о нейроне, или мозге, или интеллекте и т.п.), а сравнивать его (включая его состав) с мышами, табуретками, китами и прочее, наблюдать за своими сравнениями (не анализировать, не включать логику анализа и достижения целей, забыть про цели)... и не торопиться, стратся быть беспристрастным наблюдателем за процессом сравнения... (Истин не знаю, могу и наврать ради посмеяться на Вами... ) Удачи!!!
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 4:04
Цитата:
Автор: гость 188.43.30.*
не люблю нейронные сети, по тому что не понимаю, как они работают
А работают они очень просто - сначала интеллектуальный оператор (человек) с помощью своего естественного обученного интеллекта отбирает ворох заведомо хороших годных примеров, заведомо имеющих меж собой нечто общее и подсовывает нейросетке, которая это общее пытается выудить. В этом нейросети преуспели бесспорно, но интеллекта в них от этого не появилось. И не появится.
Мне не нравятся нейросети, потому что они ничего не могут сами - не могут сами обучиться и не могут сами потом объяснить свой результат. Чёрный ящик, вещь-в-себе, для демонстрации фокусов инвесторам.

P.S.
"синоптической" - пишется "синаптической"
"тем неимение" - пишется "тем не менее"
"привадила" - пишется "приводила"
елитанта" - пишется "дилетанта"
"в перёд" - пишется "вперёд"
[Ответ][Цитата]
гость
109.205.248.*
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 4:38
Цитата:
Автор: Андрей

... интеллекта в них от этого не появилось. И не появится.
Мне не нравятся нейросети, потому что они ничего не могут сами - не могут сами обучиться и не могут сами потом объяснить свой результат. Чёрный ящик, вещь-в-себе, для демонстрации фокусов инвесторам.


+100500!!!!!!!!

Цитата:


P.S.
"синоптической" - пишется "синаптической"
"тем неимение" - пишется "тем не менее"
"привадила" - пишется "приводила"
елитанта" - пишется "дилетанта"
"в перёд" - пишется "вперёд"


+500500500!!!!!!!!

[Ответ][Цитата]
гость
188.43.0.*
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 5:40
[quote]Автор: Андрей
Мне не нравятся нейросети, потому что они ничего не могут сами - не могут сами обучиться и...
quote]
Мне тоже не нравятся нейроны, но как построить память на других принципах я не знаю.
А как вы относитесь к PascalABC.NET?
P.S.
А ещё я не могу заниматься вычиткой собственного текста. Я его для этого должен забыть.
[Ответ][Цитата]
Валентин
Сообщений: 4536
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 5:56
1. "Вообще не люблю нейронные сети, по тому что не понимаю, как они работают."
на 1. - А зря. Нейронные сети - это хороший математический аппарат, правда плохо подходящий для изучения работы мозга.
2. "Забегая немного в перёд, скажу, что сейчас мне кажется, что нейрон на поверхности своей синоптической мембраны из синапсов, формирует логические группы «И» с их взаимодействием в логике «ИЛИ».
на 2. - "Мозг, вообще не представляет собой ни цифрового устройства (он, скорее, нелинейный аналоговый), ни сети в её классическом понимании, поскольку не описывается ни одной из известных топологий. Не любое множество соединённых элементов являются сетью. Любая модель нейрона не конструктивна для создания модели, подходящей для достаточно точного описания процессов мышления и Интеллекта. Это как описание нашего Форума с молекулы каждого участника. Пока лучше всего для этого подходит модель с использованием более крупных элементов - участников Форума с их индивидуальными свойствами, могущими быть определёнными из самых разных источников: истории и содержания их постов на Форуме, их аватар и объявленных ими же своих характеристик, их характеристик другими участниками, характеристиками из социальных сетей и т.д.
Для описания мышления, нейрон, вообще говоря, ничто. Важна информация и её обработка. Важны "информационные группы" (у меня - модели), их соединения и механизмы запуска (мотивация). Мозг - ИНФОРМАЦИОННАЯ МАШИНА!
З.Ы. Правда ещё и живая.
Исходя из подобных соображений мною и была предложена тема "Модельная природа мышления" и опубликована в "Публикациях".
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 6:41
Цитата:
Автор: гость 188.43.0.*
А как вы относитесь к PascalABC.NET?
Сегодня впервые от Вас услышал. Скачал, установил, поигрался. Симпатишный компилятор. Почему Вы спросили о нём в топике про нейросети - непонятно. Наверное что-то личное. Студенческое.

Цитата:
Автор: гость 188.43.0.*
как построить память на других принципах
Прежде чем строить память нужно решать, что запоминать.
А прежде чем решить что запоминать, нужно определиться зачем запоминать.
Мне сейчас нравится думать, что запоминание нужно, в основном, для того, чтобы в дальнейшем иметь норму. Сравнение, предсказание, узнавание, целеполагание, обучение моторики - всё это может работать только если есть норматив, к которому следует стремиться, ожидать, хотеть.

Цитата:
Автор: гость 188.43.0.*
я не могу заниматься вычиткой собственного текста
Вычитка тут не поможет. Некоторые помарки системны. Это нужно просто запомнить, как норму.
[Ответ][Цитата]
гость
188.43.30.*
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 6:50
Поиграться в компиляторе Это нейросеть.

uses GraphABC;

const
Tconst = 10;
Pconst = 85;
PDivT = 5;
niconst = 5000;

var
f1: file of word;
Sensor: array of word;
SignN, SignT, SignP, SignNs, SignX, SignM, SignW: Queue<word>;
CashN, CashNs, CashX, CashM, CashW: Queue<word>;
BufN, BufT, BufP, BufNs, BufX, BufM, BufW: Queue<word>;
dynamic: array of boolean;
nl, i, j, k: integer;
c: Byte;
Col: color;
N, X, Y, W, T, Ns, P, M: word;
Poz, L, res: word;
s_X, s_Y, s_XX, s_XY: integer;
B0, B1, res_2: real;
divisor: integer;
st: string;
effect: boolean;
{N-номер события, T-время на которое активируется событие, Р - порог нейрона
Ns - номер сенсора с которым связан нейрон N, X- масса или показатель корреляции сенсора
Ns к событию N, М - минимально необходимое значение сенсора Ns, W - последнее
значение сенсора Ns, при котором произошла активация события N }

begin
SignN := new Queue<word>;
SignT := new Queue<word>; SignP := new Queue<word>; SignNs := new Queue<word>;
SignX := new Queue<word>; SignM := new Queue<word>; SignW := new Queue<word>;

CashN := new Queue<word>;
CashNs := new Queue<word>; CashX := new Queue<word>;
CashM := new Queue<word>; CashW := new Queue<word>;

BufN := new Queue<word>;
BufT := new Queue<word>; BufP := new Queue<word>; BufNs := new Queue<word>;
BufX := new Queue<word>; BufM := new Queue<word>; BufW := new Queue<word>;

if FileExists('Признаки.dat') then // Загрузка
begin
assign(f1, 'Признаки.dat');
Reset(f1);
repeat
read(f1, N, Ns, X, M, W);
SignN.Enqueue(N);
SignNs.Enqueue(Ns); SignX.Enqueue(X);
SignM.Enqueue(M); SignW.Enqueue(W);
until Eof(f1);
close(f1);
assign(f1, 'Отрибуты.dat');
Reset(f1);
repeat
read(f1, T, P);
SignT.Enqueue(T);
SignP.Enqueue(P);
until Eof(f1);
close(f1);
end;

dynamic := new boolean[1];
dynamic[0] := false;

nl := niconst;
repeat//Главный цикл

//ClearWindow;
for j := 0 to 12 do //Добавляю сигнал сенсора
for i := 0 to 13 do
SetPixel( i + 99, j + 82, clWhite);
Font.Size := 10;
if nl / 10 = nl div 10 then
K := Random(32);
TextOut(100 + Random(2), 80 + Random(2), char(k + 1040));
{K := Random(9);
TextOut(100+Random(2), 80+Random(2), k);}

for j := 0 to 50 do
SetPixel(Random(13) + 99, Random(12) + 82, clWhite);

Font.Size := 20;
TextOut(10, 80, nl);
nl := nl - 1;


//Начало
LockDrawing;
for j := 0 to 12 do //Добавляю сигнал сенсора
for i := 0 to 13 do
begin
c := trunc((100 / 255) * (255 - GetRed(GetPixel( i + 99, j + 82))));

if (i = 0) and (j = 0) then
Sensor := new word[1]
else
SetLength(Sensor, Length(Sensor) + 1);
Sensor[Length(Sensor) - 1 ] := c;

c := trunc(c * 2.55);
Col := RGB(c, c, c);

SetPixel(i * 3 + 120, j * 3 + 83, Col);
SetPixel(i * 3 - 1 + 120, j * 3 + 83, Col);
SetPixel(i * 3 + 120, j * 3 - 1 + 83, Col);
SetPixel(i * 3 - 1 + 120, j * 3 - 1 + 83, Col);
SetPixel(i * 3 - 2 + 120, j * 3 + 83, Col);
SetPixel(i * 3 + 120, j * 3 - 2 + 83, Col);
SetPixel(i * 3 - 2 + 120, j * 3 - 2 + 83, Col);
SetPixel(i * 3 - 1 + 120, j * 3 - 2 + 83, Col);
SetPixel(i * 3 - 2 + 120, j * 3 - 1 + 83, Col);
end;
Redraw;
//Конец


//Начало
if SignN.Count > 0 then //Нахождение активных событий
begin
L := 800;
repeat
st := '';
T := SignT.Dequeue();
P := SignP.Dequeue();
s_X := 0;s_Y := 0;s_XX := 0;s_XY := 0;
repeat// Цикл для каждой связи
N := SignN.Dequeue();
Ns := SignNs.Dequeue(); X := SignX.Dequeue();
M := SignM.Dequeue(); W := Sensor[Ns ];
st := st + ' ' + inttostr(Ns) + ' ';
if Length(dynamic) - 1 < Ns then
SetLength(dynamic, Ns + 1);
dynamic[Ns] := true;
if W >= M then Y := trunc(100 * (X / 100))
else Y := trunc((100 / M * W) * (X / 100));
if X > Pconst then //Порог поиск нового
begin
s_X := s_X + X;s_Y := s_Y + Y;s_XX := s_XX + X * X;s_XY := s_XY + X * Y;
end;
CashN.Enqueue(N);
CashNs.Enqueue(Ns); CashX.Enqueue(X);
CashM.Enqueue(M); CashW.Enqueue(W);
if SignN.Count > 0 then
L := SignN.Peek;
until (L <> N) or (SignN.Count = 0 ); // Конец цикла для каждой связи

divisor := 1000 * s_XX - s_X * s_X;
B0 := (s_Y * s_XX - s_XY * s_X) / divisor;
B1 := (1000 * s_XY - s_X * s_Y) / divisor;
res_2 := B0 + B1 * 100;
if not Real.IsNaN(res_2) Then res := Trunc(B0 + B1 * 100)
Else res := 0;

if res > P then
effect := True;

if T = 0 then
begin
if res > Pconst then // Порог узнавнания
T := Tconst;
end
else
T := T - 1;

if CashN.Count > 0 then //
repeat
BufN.Enqueue(CashN.Dequeue());
BufNs.Enqueue(CashNs.Dequeue()); BufX.Enqueue(CashX.Dequeue());
BufM.Enqueue(CashM.Dequeue()); BufW.Enqueue(CashW.Dequeue());
until CashN.Count = 0;

if BufN.Count > 0 then //Добавляются активные связи
if T > 0 then
for i := 0 to Length(Sensor) - 1 do
if Sensor[i] > 0 then
if Pos(' ' + inttostr(i) + ' ', st) = 0 then
begin
BufN.Enqueue(N);
BufNs.Enqueue(i); BufX.Enqueue(1);
BufM.Enqueue(Sensor[i]); BufW.Enqueue(Sensor[i]);
end;

BufT.Enqueue(T); BufP.Enqueue(P);
until SignP.Count = 0;

SignN.Clear;
SignNs.Clear; SignX.Clear;
SignM.Clear; SignW.Clear;
SignT.Clear; SignP.Clear;
repeat
SignN.Enqueue(BufN.Dequeue());
SignNs.Enqueue(BufNs.Dequeue()); SignX.Enqueue(BufX.Dequeue());
SignM.Enqueue(BufM.Dequeue()); SignW.Enqueue(BufW.Dequeue());
until BufN.Count = 0;
repeat
SignT.Enqueue(BufT.Dequeue()); SignP.Enqueue(BufP.Dequeue());
until BufP.Count = 0;
BufN.Clear;
BufNs.Clear; BufX.Clear;
BufM.Clear; BufW.Clear;
BufT.Clear; BufP.Clear;

end;
//Конец уровня активности

//Анализ событий
//Начало
if SignN.Count > 0 then
repeat
T := SignT.Dequeue();
P := SignP.Dequeue();
effect := false;
repeat
begin
N := SignN.Dequeue();
Ns := SignNs.Dequeue(); X := SignX.Dequeue();
M := SignM.Dequeue(); W := SignW.Dequeue();
if W > 0 then
begin
if T > 0 then
if 100 / M * W >= P then
begin
if T = Tconst then
begin
X := X + Tconst;
if X > 100 then X := 100;
M := W;
P := Pconst;
end;
end
Else
begin
if X > 0 then X := X - 1;
if M > Sensor[Ns] then M := Sensor[Ns];
end;
if X > 0 then
begin
effect := True;
BufN.Enqueue(N);
BufNs.Enqueue(Ns); BufX.Enqueue(X);
BufM.Enqueue(M); BufW.Enqueue(Sensor[Ns]);
end;
end
else
begin
if T = Tconst then
if X >= 0 then
X := X - 1;
if X > 0 then
begin
effect := True;
BufN.Enqueue(N);
BufNs.Enqueue(Ns); BufX.Enqueue(X);
BufM.Enqueue(M); BufW.Enqueue(W);
end;
end;
end;
if SignN.Count > 0 then
L := SignN.Peek;
until (L <> N) or (SignN.Count = 0 );
if effect then
begin
BufT.Enqueue(T); BufP.Enqueue(P);
end;
until(SignP.Count = 0 );

if BufN.Count <> 0 then
repeat
SignN.Enqueue(BufN.Dequeue());
SignNs.Enqueue(BufNs.Dequeue()); SignX.Enqueue(BufX.Dequeue());
SignM.Enqueue(BufM.Dequeue()); SignW.Enqueue(BufW.Dequeue());
until BufN.Count = 0;
if BufP.Count <> 0 then
repeat
SignT.Enqueue(BufT.Dequeue()); SignP.Enqueue(BufP.Dequeue());
until BufP.Count = 0;
//Конец



//Добавление событий
//Начало
if (Length(dynamic) > 1) or (SignN.Count = 0) then
begin
if Length(Sensor) <> Length(dynamic) then
for i := Length( dynamic) - 1 to Length(Sensor) - 1 do
begin
SignN.Enqueue(SignN.Count);
SignT.Enqueue(0); SignP.Enqueue(Pconst);
SignNs.Enqueue(i); SignX.Enqueue(100);
SignM.Enqueue(100); SignW.Enqueue(0);
if i > 0 then
SetLength(dynamic, Length(dynamic) + 1);
dynamic[i] := true;
end;

for i := 0 to Length( dynamic) - 1 do
if dynamic[i] = False then
begin
SignN.Enqueue(SignP.Count);
SignT.Enqueue(0); SignP.Enqueue(Pconst);
SignNs.Enqueue(i); SignX.Enqueue(100);
SignM.Enqueue(100); SignW.Enqueue(0);
end;
end;

dynamic := new boolean[1];
dynamic[0] := false;
//Конец
if nl / 10 = nl div 10 then
begin
ClearWindow;
Font.Size := 20;
TextOut(10, 120, 'Время на один цикла '+Format('{0,5:f2}', Milliseconds / (niconst - nl)));
TextOut(10, 150, 'Время до завершения '+Format('{0,5:f0}', (((Milliseconds / (niconst - nl)) * nl) / 1000)/60)+' минут ');
Redraw;
end;
until nl < 0;

TextOut(10, 180, Format('{0,5}', 'Количество связей в слое: ' + SignN.Count));
TextOut(10, 210, Format('{0,5}', 'Количество нейронов в слое: ' + SignP.Count));
Redraw;
if SignN.Count > 0 then //Сохранение
begin
assign(f1, 'Признаки.dat');
rewrite(f1);
repeat
write(f1, SignN.Dequeue(), SignNs.Dequeue(), SignX.Dequeue(), SignM.Dequeue(), SignW.Dequeue() );
until SignN.Count = 0;
close(f1);

assign(f1, 'Отрибуты.dat');
rewrite(f1);
repeat
write(f1, SignT.Dequeue(), SignP.Dequeue() );
until SignT.Count = 0;
close(f1);
end;
end.
[Ответ][Цитата]
гость
188.43.0.*
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 6:52
А это не чём можно посмотреть результат

uses GraphABC;
var
f1: file of word;
Xp, Yp: array [0..500] of integer;
i, j, L, K, m: integer;
Da, Mo, Ya, Ho, Mi: string;
N, Ns, X, Mv, W: word;
c: color;
d1: System.DateTime;

begin
SetWindowSize(1650, 1350 );
L := 0;
K := 0;
for j := 0 to 12 do
for i := 0 to 13 do
begin
Xp[L] := i;
Yp[L] := j;
L := L + 1;
end;
assign(f1, 'Признаки.dat');
reset(f1);
L := 3;
K := 0;
repeat
read(f1, N, Ns, X, Mv, W);

// if N = 115 then
m := N - (N div 14) * 14;
k := N div 14;
begin

if X <85 then
begin
c := RGB( trunc(255 / 100 * (X + 30)), 0, 0);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3, (Yp[Ns] + 10 + K * 30) * 3, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 1, (Yp[Ns] + 10 + K * 30) * 3 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 1, (Yp[Ns] + 10 + K * 30) * 3, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3, (Yp[Ns] + 10 + K * 30) * 3 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 2, (Yp[Ns] + 10 + K * 30) * 3 - 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 2, (Yp[Ns] + 10 + K * 30) * 3, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3, (Yp[Ns] + 10 + K * 30) * 3 - 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 2, (Yp[Ns] + 10 + K * 30) * 3 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 1, (Yp[Ns] + 10 + K * 30) * 3 - 2, c);
end;
if X >=85 then
begin
c := RGB(0, 0, trunc(255 / 100 * (X*5 +180)));
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3, (Yp[Ns] + 10 + K * 30) * 3, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 1, (Yp[Ns] + 10 + K * 30) * 3 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 1, (Yp[Ns] + 10 + K * 30) * 3, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3, (Yp[Ns] + 10 + K * 30) * 3 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 2, (Yp[Ns] + 10 + K * 30) * 3 - 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 2, (Yp[Ns] + 10 + K * 30) * 3, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3, (Yp[Ns] + 10 + K * 30) * 3 - 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 2, (Yp[Ns] + 10 + K * 30) * 3 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 3 - 1, (Yp[Ns] + 10 + K * 30) * 3 - 2, c);
end;
TextOut(90 + 50 * m, 75 + K * 90, N);
// Sleep(100);
end;


until Eof(f1);
close(f1);
d1 := System.DateTime.Now;
Da := inttostr(d1.Day);
if Length(Da) = 1 then Da := '0' + Da;
Mo := inttostr(d1.Month);
if Length(Mo) = 1 then Mo := '0' + Mo;
Ya := inttostr(d1.Year);
Ho := inttostr(d1.Hour);
if Length(Ho) = 1 then Ho := '0' + Ho;
Mi := inttostr(d1.Minute);
if Length(Mi) = 1 then Mi := '0' + Mi;

Writeln(Da, '.', Mo, '.', Ya, ' ', Ho, ':', Mi);
Window.Save('Отрисовка ' + Da+ '_' + Mo+ '_' + Ya + ' ' + Ho + '_' + Mi + '.bmp');
end.
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 7:27
Нейросеть отработала нормально.
А вот просмотрщик вылетает с ошибкой, видимо потому, что высота моего дисплея 768 пикселей - меньше чем задумывалось.
[Ответ][Цитата]
гость
148.251.43.*
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 7:35
Цитата:
Автор: Андрей

только если есть норматив

как норму
норма это не про Вас и вообще не про "иишников", которых как утверждает КОТ, не существует в природе, нормальный человек не будет отрицать своего существования, так поступают разные психи и социопаты, так что перестаньте пожалуйста рассуждать о норме
[Ответ][Цитата]
гость
188.43.0.*
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 7:39
Цитата:
Автор: Андрей

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


uses GraphABC;
var
f1: file of word;
Xp, Yp: array [0..500] of integer;
i, j, L, K, m: integer;
Da, Mo, Ya, Ho, Mi: string;
N, Ns, X, Mv, W: word;
c: color;
d1: System.DateTime;

begin
SetWindowSize(600, 700 );
L := 0;
K := 0;
for j := 0 to 12 do
for i := 0 to 13 do
begin
Xp[L] := i;
Yp[L] := j;
L := L + 1;
end;
assign(f1, 'Признаки.dat');
reset(f1);
L := 3;
K := 0;
repeat
read(f1, N, Ns, X, Mv, W);

// if N = 115 then
m := N - (N div 14) * 14;
k := N div 14;
begin

if X < 85 then
begin
c := RGB( trunc(255 / 100 * (X + 30)), 0, 0);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2, (Yp[Ns] + 10 + K * 30) * 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2 - 1, (Yp[Ns] + 10 + K * 30) * 2 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2 - 1, (Yp[Ns] + 10 + K * 30) * 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2, (Yp[Ns] + 10 + K * 30) * 2 - 1, c);
end;
if X >= 85 then
begin
c := RGB(0, 0, trunc(255 / 100 * (X * 5 + 180)));
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2, (Yp[Ns] + 10 + K * 30) * 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2 - 1, (Yp[Ns] + 10 + K * 30) * 2 - 1, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2 - 1, (Yp[Ns] + 10 + K * 30) * 2, c);
SetPixel((Xp[Ns] + L * 15 + 15 * m) * 2, (Yp[Ns] + 10 + K * 30) * 2 - 1, c);
end;
TextOut(100 + 30 * m, 50 + K * 60, N);
// Sleep(100);
end;


until Eof(f1);
close(f1);
d1 := System.DateTime.Now;
Da := inttostr(d1.Day);
if Length(Da) = 1 then Da := '0' + Da;
Mo := inttostr(d1.Month);
if Length(Mo) = 1 then Mo := '0' + Mo;
Ya := inttostr(d1.Year);
Ho := inttostr(d1.Hour);
if Length(Ho) = 1 then Ho := '0' + Ho;
Mi := inttostr(d1.Minute);
if Length(Mi) = 1 then Mi := '0' + Mi;

Writeln(Da, '.', Mo, '.', Ya, ' ', Ho, ':', Mi);
Window.Save('Отрисовка ' + Da + '_' + Mo + '_' + Ya + ' ' + Ho + '_' + Mi + '.bmp');
end.
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Нейронная сеть - не нейронная сеть.
Добавлено: 20 ноя 16 7:55
Цитата:
Автор: гость 148.251.43.*
нормальный человек не будет
так что перестаньте
Все конфликты в истории случались из-за того, что кто-то считал себя исключительным носителем нормы, которую необходимо насадить другим. Вот и ты, Брут...
Пусть будут люди, которые искренне считают себя несуществующими. Они не так далеки от истины, если разобраться.

Цитата:
Автор: гость гость 188.43.0.*
можно посмотреть результат
Да, спасибо, всё работает. Что дальше?
[Ответ][Цитата]
 Стр.1 (36): [1]  2  3  4  5  ...  36След. > >>