LINUX.ORG.RU

практическое использование нейросети

 ,


0

2

Нечего делать, решил изучить простейшую нейросеть на практическом примере. Задача: поддерживать температуру диска в 37 градусов регулируя скорость куллера (PWM 0-1023). Берем простейший пример перцептрона:

import numpy as np

def sigmoid(x):
    return 1/(1 + np.exp(-x))

training_inputs = np.array ([[1,0,0,0],
                            [0,1,1,0],
                            [1,0,1,1],
                            [1,1,0,1]])

training_outputs = np.array([[0],
                             [1],
                             [1],
                             [0]])

np.random.seed(1)
synaptic_weights = 2 * np.random.random((4,1)) - 1

for i in range(100000):
    input_layer = training_inputs
    outputs = sigmoid(np.dot(input_layer, synaptic_weights))

    err = training_outputs - outputs
    adjustments = np.dot(input_layer.T, err * (outputs))
    synaptic_weights += adjustments

print("веса после обучения")
print(synaptic_weights)
print("result")
print(outputs)

берем температуру диска из smartctl и статистику нагрузки

iostat -m
Device             tps    MB_read/s    MB_wrtn/s
sda               4.00         0.00         0.00
...
sda               76.00         0.00        85.50
...
sda               105.00        98.00       0.00

Подставляем это все во входные данные:

training_inputs = np.array ([[37,4,0,0],
                            [39,76,0,85],
                            [38,105,98,0],
                            [37,0,0,0]])
И тупик. Какие выходные значения мне нужно искать и как связать их с оборотами?

поддерживать температуру диска в 37 градусов регулируя скорость куллер Ну и? Тебе экстраполировали значения или где? Если нет то ты плохую выборку для обучения выбрал, ты кстати внешние факторы учитывал?

Сидячее и лежачее животное это я, на диване.

anonymous
()

Если натянуть эту задачу на задачу «классификации», то тут единственное чему можно научить нейросеть так это понимать «высокая» или «низкая» температура. Но это слишком просто. Поэтому пример крайне неудачный.

unDEFER ★★★★★
()
Ответ на: комментарий от the_real_kinik

Т.е. мы говорим сети что вот при такой нагрузке должны быть такие обороты, а в будущем она сама будет их предугадывать? Получается мне сперва нужно собрать какой-то объем данных на котором она обучится?

lucky_guy ★★★
() автор топика
Ответ на: комментарий от lucky_guy

По сути задача в том, чтобы подобрать такие веса для уравнения (по сути перцептрон это и есть уравнение), чтобы при заданных состояниях диска оно выдавало такие же обороты, как которые ты привел в пример.

А так как поведение заранее неизвестно, нужно обучать модель, чтобы она «восстановила» уравнение по имеющимся данным.

the_real_kinik ★★
()

Не очень понятно…
Почему входной массив 4х4? Если предполагается на вход подавать 4 значения: tps, MB_read/s MB_wrtn/s, (какое 4, кстати?) - то по идее 4 входа должно быть, а не 4х4.
А что на выходе должно быть? Допустим, предсказание температуры жёсткого диска. Тогда это должно примерно выглядеть так:
input(4x1)
х
weights (1x4)
=>
output(1x1)
Ну ещё вот сигмоиду надо применить и масштабировать выходное значение [0..1] в нужный диапазон, например [20 градсуов .. 50 градусов]. А при обучении нужно скармливать реальные 4 входа и реальную температуру (отмасштабированную из 20..50 в 0..1) так, чтобы веса скорректировались. Кстати, задача хоть и простая, но не выглядит элементарной или бесполезной, мне нравится :)

PeleWin
()
Ответ на: комментарий от Irma

Я вот помню единственный пример практического применения нейросети (не то что они бесполезны, просто я с ними не сталкиваюсь) - сосед очень ждал важную посылку, нервничал. Что бы самому дцать раз не лазить на сайт и не вбивать трек-номер прикрутил для этого бота, а к боту нейросеть обучил шоб капчу ломать. Вот это прям было реально практично, будущее которое уже здесь!;-)

AntonI ★★★★★
()
Ответ на: комментарий от PeleWin

Пишет же человек что нейросети изучает.

Пусть для начала логические элементы воспроизведет. Посмотрит сколько нужно элементов нейронной сети для эмуляции одного логического элемента.

anonymous
()
Ответ на: комментарий от PeleWin

Ценность КМК в том, что бы не забивать гвозди микроскопом. Изучение чего либо обычно начинается с понимания области применимости этого чего либо.

AntonI ★★★★★
()

Вам стоит немного изменить и данные и сеть.

Входные данные: температура от датчика, ее нужно нормализовать - загнать в значения 0..1. Ноль это скажем 30 градусов, та температура когда вентилятор выключен, 1 это 90 градусов - когда вентилятор работает на 100 процентов. Температуры просто пример, подставьте желаемые.

Выходные данные: обороты вентилятора в диапазоне от 0 до 1, где 0 это 0 оборотов, 1 - 4500 оборотов или сколько там ваш вентилятор может давать в максимуме.

Функция активации: лучше сменить сигмоиду на relu потому что вам нужна линейная зависимость в диапазоне от 0 до 1, а у сигмоиды к концам диапазона игреки слабо реагируют на изменения в иксах.

Если у вас несколько датчиков и несколько вентиляторов регулируемых, отдельно то нужно передавать массивы

training_inputs = np.array ([[0.21,0.22,0.21,0.35],
                            [0.9,0.88,0.85,0.82])

Выходными данными будут обороты для каждого вентилятора

training_outputs = np.array([0.3, 0.31, 0.3, 0.33],
                            [0.8, 0.79, 0.77, 0.71])

Если же все вентиляторы имеют общую регулировку тогда имеет смысл передавать температуру того диска где она максимальна, а в результате возвращать обороты одинаковые для всех вентиляторов

training_inputs = np.array ([[0.35],
                            [0.9]])
training_outputs = np.array([0.33],
                            [0.79])
Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от anonymous

Дык я выше и сказал что какая сетка если у него тупо трешолд по 3 зонам можно сказать.

Автор темы же написал:

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

И дураку понятно что можно в биосе во всяких Qfan натыкать контроль диапазонов. Вопрос же не в этом.

Obezyan
()

слишком простые условия для работы сети ?? :)
тем более статистика нагрузки очень медленно взаимодействует с температурой диска. сеть просто не успевает вычислить корреляции ??

pfg ★★★★★
()
Ответ на: комментарий от AntonI

А накой тут нейросеть?! Обычная задача управления

Теоретически нейросеть может знать о типичном поведении объекта управления и управлять с предсказанием. В данном случае например включать кулер посильнее прямо в начале процесса интенсивного разогрева,а не с запаздыванием.

Опять же теоретически, типичное поведение объекта можно и в «обычной» системе управления учесть. Но для этого его придется долго исследовать вручную и подбирать параметры регулятора тоже вручную. А нейросетке можно поставить задачу минимизации отклонения температуры и она может дообучаться сама.

watchcat382
()
Ответ на: комментарий от watchcat382

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

Самое забавное что нейросеть должна предсказывать нагрузку на проц обусловленную в т.ч. работой самой нейросети;-)

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Самое забавное что нейросеть должна предсказывать нагрузку на проц обусловленную в т.ч. работой самой нейросети;-)

Рефлексия, самосознание?!

anonymous
()

Пару лет не заходил в лор, но он все еще торт. Из 10 комментов в 6 отговаривают делать то что ты делаешь, 3 обсирают, 1 дает дельные советы.

Разумеется, для управления куллером не нужна нейронка. Много лет тому назад я состряпал пид регулятор на баше, подобрал коэффициенты и забыл за него. Это просто пример, считай задачка в учебнике.

В общем смысл понял, нормализуем входные значения к 0-1, обучаем, выходные значения 0-1 переводим в обороты.
Потом нужно будет прикрутить самообучение, потому что точных значений необходимых оборотов под разные нагрузки у меня нет, но это уже другая история.

Буду ковыряться, всем спасибо.

lucky_guy ★★★
() автор топика
Ответ на: комментарий от AntonI

Ну это уже явное 4.2. Персонаж вообще не понимает о чем говорит и вводит в заблуждение:

  1. Персонаж путает предсказание временных рядов при передаче сети последних n значений упорядоченных во времени для предсказания следующего значения с сетью-регулятором получающий мгновенное значение не привязанное ко времени.

  2. Рассказывает о том что сети плохо предсказывают ряды приводя в пример биржу.

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

Прекращайте нести пургу в сферах в которых вы не разбираетесь: физика, математика, сети.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от AntonI

кабы нейросети их могли предсказывать хорошо то все биржи бы позакрывались

Принципиально, нейросеть — это всего лишь математическая модель с большим или очень большим количеством параметров. Она подгоняется под данные, объём которых соотносится с количеством параметров модели, с помощью различных методов регресси: это может быть градиентный спуск или метод ньютона или ещё что-то. Мат модели позволяют нам предсказывать будущее. Ты, как математик, точно лучше меня это понимаешь :)

В теории, если цены фондовом рынке всё же не случайны, то, при достаточном количестве параметров, нейросети их смогут предсказывать, так как могут «анализировать» огромные объёмы информации. Как, например, сейчас они могут предсказывать погоду, да и все видели те удивительные вещи, которые творят языковые и диффузионные модели. Тоже, своего рода, весьма нетривиальная задача — предсказать следующее слово или соседний пиксел, опираясь на контекст.

нейросеть должна предсказывать нагрузку на проц обусловленную в т.ч. работой самой нейросети

Но даже если нейросеть научится предсказывать цены на акции, то как раз, по указанной тобой причине, а именно — обратной связи, фондовому рынку будет суждено адаптироваться, что конечно же, отразится на точности предсказаний и целесообразности применения AI для предсказания цен.

А может быть и так, что уже сегодня они во всю эксплуатируются индустрией. Вот, нашлась какая-то статья, в выдержке которой говорится о точности предсказания в 99% некоторого рыночного индекса: https://www.nature.com/articles/s41598-024-71873-7?fromPaywallRec=false

stabilitron
()
Ответ на: комментарий от stabilitron

В теории, если цены фондовом рынке всё же не случайны, то, при достаточном количестве параметров, нейросети их смогут предсказывать, так как могут «анализировать» огромные объёмы информации.

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

alysnix ★★★
()
Ответ на: комментарий от alysnix

обладая примерно одинаковыми стратегиями

выигрывает тот, у кого больше ресурсов.

И рынок/биржа, как замкнутая система, которая совсем не «вечный двигатель», которая ничего не производит, живет на свежей крови. Не будет свежей крови, схема Понци всхлопнется. Надо предсказывать не внутренние индикаторы, надо предсказывать поступление новых жертв - это внешние индикаторы.

anonymous
()
Ответ на: комментарий от stabilitron

Мат модели позволяют нам предсказывать будущее.

Смотря какие модели смотря в какой области. Модель обсуждаемая в этом треде предсказывать будущую температуру проца может почти что никак. Вообще полезность нейросетей сильно преувеличена - где то они незаменимы, а где то от них толку почти никакого, по сравнению с узкозаточенными решениями.

если цены фондовом рынке всё же не случайны, … нейросети их смогут предсказывать, так как могут «анализировать» огромные объёмы информации. Как, например, сейчас они могут предсказывать погоду,

Не могут они погоду предсказывать. Точнее их предсказания очевидно будут радикально хуже чем у узкозаточенного гидрометеоролического кода работающего на аналогичных вычислительных мощностях. С рынком все сложнее - есть сложные теории описывающие его поведение, есть фирмы которые с этого неплохо живут. Но как там нейросети используют не раскрывается - «кто знает не говорит, а кто говорит не знает». О слишком больших деньгах речь идет.

Но даже если нейросеть научится предсказывать цены на акции, то как раз, по указанной тобой причине, а именно — обратной связи, фондовому рынку будет суждено адаптироваться, что конечно же, отразится на точности предсказаний и целесообразности применения AI для предсказания цен.

Уже больше 10ти лет на рынке торгуют боты, и от бодания этих ботов цены испытывают очень быстрые осцилляции с очень маленькой амплитудой.

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от AntonI

Не могут они погоду предсказывать. Точнее их предсказания очевидно будут радикально хуже чем у узкозаточенного гидрометеоролического кода работающего на аналогичных вычислительных мощностях.

Очень даже могут: https://en.wikipedia.org/wiki/Weather_forecasting#Artificial_intelligence

These models typically require far less compute than physics-based models.

stabilitron
()
Ответ на: комментарий от Obezyan

Да, Ваши способности к связному логическому мышлению уступают только Вашим компетенциям в физике и математике, хотя такое себе и трудно представить. Впрочем после Вашего волшебного «Один мой близкий родственник после прививки получил проблемы со зрением, откуда железобетонно следует что вакцины от ковида убили бы народу больше чем сам ковид.» удивляться уже нечему.

Сети отлично справляются с предсказанием временных рядов … с точки зрения сети такой временной ряд непредсказуем

Это нужно в мемориз!

AntonI ★★★★★
()
Ответ на: комментарий от stabilitron

«как-то» - ключевое слово;-)

Вона у яндекса есть прогноз погоды, думаете как он работает? Как-то…

Я примерно знаю как работает предсказание погоды/климата (в общих чертах) и какие там сложности. Нейросеть может выдавать ПРАВДОПОДОБНЫЙ результат, не более того. Самое печальное, что мы не можем никогда заранее знать врет она или нет.

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от Obezyan

Атака тупостью

Если Вы не понимаете что Вам говорят, возможно туп не Ваш собеседник а Вы?

пора вам в сокрытие.

Перефразируя известное -

Не грусти приставучья мартышка
Возвращайся в свой сказочный лес!

AntonI ★★★★★
()
Ответ на: комментарий от stabilitron

Основная проблема в таких вещах (если интересно) - т.н. динамический хаос. Входные данные для моделирования неточны, метеостанции стоят на каком то расстоянии друг от друга, что между ними происходит неизвестно. Если бы даже у нас была абсолютно точная модель климата (чего нет - она весьма приближенная) то мы бы все равно не смогли задать для нее начальные условия.

Погрешности в начальных условиях очень быстро накапливаются, т.н. эффект бабочки - бабочка где то крылышком махнула а в 100 милях случился ураган. Не махнула бы - ураган бы все равно случился, но чуть раньше/позже/немного не там. Я не помню конкретных цифр, но для точного предсказания погоды на неделю что ли в масштабах планеты нужно воткнуть метеостанцию в каждый кубометр атмосферы.

Теперь берем нейросеть и учим ее. Она бол-мен будет давать что то правдоподобное в типовых сценариях, но когда она врет непонятно. Тот же ураган, поскольку это уже нифига не типовой сценарий, она будет предсказывать хуже чем физическая модель. Грубо говоря она скажет что ой - ураган, когда его уже видно будет невооруженным взглядом. Как тот заяц который погоды предсказывает - если с зайца капает значит идет дождь;-)

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Про ураганы, кстати, тоже недавно статью видел, где говорили, что ИИ точнее предсказывает, чем физическая модель.

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

Кроме метеостанций сейчас ещё плотно используются спутниковые данные и их становится всё больше и сами данные становятся точнее. Ещё я подозреваю, что добавить в нейромодель какой-то очередной источник данных проще, с точки зрения теории, чем в физическую модель. Отсюда, вероятно, и такая популярность темы у IT-гигантов.

stabilitron
()
Ответ на: комментарий от stabilitron

современные прогнозы, основанные на физических моделях, тоже частенько ошибаются и порой даже в рамках прогноза на 1 день.

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

Популярность нейросетей КМК связано с двумя вещами:

  1. низкий порог вхождения. Любой @Obezyan может для любой заадчи че то наговнякать за полчаса и ходить гоголем, обсирая на ЛОРе тех кто этим всю жизнь занимается. Качество такого моделирования будет хуже чем никакое, но пипл схавает. Т.е. да - напихать в нейросетевую модель новых данных проще чем куда бы то ни было.

  2. банальны хайп, основанный в т.ч. на действительно выдающихся успехах нейросетей в некоторых областях.

AntonI ★★★★★
()

Для начала было бы неплохо определиться, чего именно хочется от нейросети добиться, а потом уже думать как её обучать. Может тебе вообще online reinforcement learning тут нужен, который будет дообучать сетку в процессе эксплуатации, автоматом подстраиваться под износ/запыленность системы и вентиляторов, и температуру в комнате, а задачей будет - обеспечить приемлемую и стабильную температуру на датчиках при минимальных оборотах вентиляторов.

ei-grad ★★★★★
()