Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 28 из 28

Тема: Нейросеть на многослойных перцептронах

  1. #21
    Пользователь Аватар для Сема
    Регистрация
    17.12.2011
    Адрес
    Армавир
    Сообщений
    567

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    да, использую, конечно не в сфере промавтоматики, здесь только в планах внедрить экспертную систему для операторов, но на неё времени не хватает, а на какие то простые вещи просто нет идей. Основу я выложил, может кто то и применит для своих задач
    А если не секрет, в каких вы сферах реализовали, кроме ПЛК. На чём и где конкретно реализована нейросеть у вас?
    kipiaplc.ru - приходите, будет интересно...

  2. #22

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    в комп.играх и на форексе
    И какие успехи на Forex много депозитов слили ?

  3. #23

    По умолчанию

    играйте на биржевых классических опционах (ванильных)
    и будет вам счастье

  4. #24

    По умолчанию

    А мне эта тема представляется крайне интересной именно для современного и будущего промышленных процессов.
    Вы рассматриваете ценность реализации механизма, а не ценность от его применения.
    Там где модель поведения понятна и известна - и смысла нет использовать ИИ.
    Они нужны именно как предиктивный инструмент прогнозирования поведения для более точного регулирования. При этом сам регулятор может быть любым. Может учитываться в модели или не учитываться.
    "Абстрактный" пример - печь для выпечки пироженных (чуть более промышленный - печь для кирпичей). Если нарушать тепловой режим - пироженное не будет воздушным или же наоборот подгорит. 2 оператора. Один имеет свойство открывать дверь в печи во время готовки - второй нет. А это не гарантированное качество продукта.
    Машинка анализирует: кто оператор, и обучается в какой момент времени с начала закладки оператор откроет дверь, и на какое время. Исходя из этого предварительно добавит тепла, компенсируя потерю при открытии двери.

    Та же история может быть и климатом в коттеджах.
    Можно изучить семью и заложить их поведенческие паттерны в модель. Кто во сколько встает. Через сколько от подъема идет купаться (прогреть теплый пол), как часто пьет кофе (включить кофемашину) и т.д.
    И тут можно либо изменять модель по желанию заказчика (БЕСКОНЕЧНО), либо система каждый день получает новые данные и самообучается, корректируя модель.

    Сейчас действительно представляется, что ИИ - страшный зверь для ПК. Но вот еще в 70-80-х годах переход с аналоговых регуляторов СУРИ\СУРА на цифровые представлялся чудом )))))

  5. #25
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Набросал еще один проект, некая абстрактная ситуация, допустим есть четыре емкости с рубашкой охлаждения, которые охлаждает ледяной водой насос, чтоб не порвать рубашку избыточным давлением используют регуляторы. Вместо стандартного ПИД решил использовать нейросеть, при всевозможных комбинациях включения емкостей(emk1,emk2,emk3,emk4) на охлаждения предустановлены свои значения производительности(RESULT), если со временем текущее давление будет отличаться от заданного(ошибка TE) будет происходить корректировка весовых коэффициентов, во время симуляции можно незначительно "подергать" в ту или иную сторону параметр INP_TRG, при выключенных емкостях значение процентов тоже будет изменятся, уточняю что это макет а не готовый образец
    Вложения Вложения
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #26
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    на выходных, пока не было оживленной движухи на предприятии, активировал свою задумку на счет поддержания давления с помощью нейросети, а не ПИД регулятора. Емкостей стало восемь. Сегодня подкорректировал выявленные недостатки и результат вполне подходящий. Базовые вещи в проекте из предыдущего поста, а сама настройка очень примитивная. Первая фаза, это построить таблицу соответствия результата от различных входных состояний, сидеть смотреть какова производительность насоса при подключении различных емкостей я не стал, написал явовский код
    Код:
            final char ONE = '1';
            for (int i = 0; i < 256; i++) {
    
                String sample = "" + Integer.toBinaryString(i);
                int pointPosition = sample.length();
                sample = sample.substring(0, pointPosition - 1) + "," + sample.substring(pointPosition - 1);
                for (int j = 0; j < pointPosition; j++) {
                    int lastSpacePosition = sample.indexOf(",");
                    if ((lastSpacePosition - 1) > 0) {
                        sample = sample.substring(0, lastSpacePosition - 1) + "," + sample.substring(lastSpacePosition - 1);
                    } else {
                        break;
                    }
                }
                long count = Integer.toBinaryString(i).chars().filter(item -> item == ONE).count();
                int result = 0;
                switch ((int) count) {
                    case 1:
                    case 2:
                        result = 62;
                        break;
                    case 3:
                    case 4:
                        result = 65;
                        break;
                    case 5:
                    case 6:
                        result = 70;
                        break;
                    case 7:
                    case 8:
                        result = 75;
                        break;
                    default:
                        result = 0;
                }
                System.out.println(sample + "," +result);
            }
    вторая фаза это создать модель, код еще меньше чем создать csv файл
    Код:
    from sklearn.neural_network import MLPRegressor
    import pandas as pd
    
    df = pd.read_csv('freq8pmp.csv')
    
    X = df[['<EMK1>','<EMK2>','<EMK3>','<EMK4>','<EMK5>','<EMK6>','<EMK7>','<EMK8>']]
    y = df[['<PROC>']]
    
    reg = MLPRegressor(hidden_layer_sizes=(6),activation='logistic',solver='lbfgs',alpha=0.01)
    reg = reg.fit(X,y)
    
    print(reg.score(X,y))
    print(reg.coefs_)
    print(reg.intercepts_)
    print(reg.predict([[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,1]]))
    чтоб модель была удачной можно заморочиться и применить всевозможные средства для этого, я не стал много писать, просто запускал несколько раз, пока не появился оптимальный вариант стремления score к единице и predict для состояния всё выключено близким к нулю
    третья фаза всвил похожий код, как из вышевыложенного проекта, только для сименса и с большим количеством костылей и всё. Далее плк уже делал подстройку весовых коэффициентов без моего участия, через несколько различных включений я уже не стал замечать движение процентов производительности насоса

    Тут в начале темы задавались вопросом зачем учить плк, но как оказалось хабр не считает чем то зазорным сослаться на страничку выпущенную не так давно как построить сеть, это при наличии помимо skikit-learn еще и tensorflow. Вобщем тема не раскрыта в чем сомнительность таких работ
    Последний раз редактировалось capzap; 27.05.2018 в 22:03.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #27

    По умолчанию

    Сколько у вашей нейросети слоев и узлов, входов и выходов ?

  8. #28
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    еще один прототип, регулятор в котором изначально заложено, что если уставка выше текущего значения, выход увеличивает свое значение. Сам регулятор в библиотеке и к ней приложен демо-проект. На входы требуется подавать нормированные значения, выход тоже возвращает значение от 0 до 1, чтоб получить проценты умножаем на сто. У меня обычно используются 46-ые таблетки, поэтому я просто делю на верхний диапазон, в особых случаях можно использовать линтрафо. Эмулятор в демке построен по другой формуле, поэтому первоначально долго выходит, меняя уставку с 0.5 до нуля и обратно, можно будет заметить, что выход будет каждый раз устанавливать более близкий процент к нужному, чтоб текущее значение достигло уставки. Так же в демке описано, что еще можно подкрутить, но в целом ни каких настроек можно не задавать. Реализацию как сохранить весовые коэффициенты для конкретной установки не делал (при останове эмуляции в КДС или отключении питания на реальном объекте все вернется к той модели которая идет в библиотеке), я с сименсом работаю, там я по другому сделал
    Вложения Вложения
    Последний раз редактировалось capzap; 23.09.2019 в 14:30. Причина: не до конца вычистил во время адаптации
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 3 из 3 ПерваяПервая 123

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •