levis:
Меня интересует вопрос достоверности полученной информации.
В работе "обыкновенного кмпьютера" его двоичная логика проверяется постоянно и многократно. Для чего используется всевомзожные алгоритмы и информации закладывается избыточно, как раз с тем, чтобы иметь возможность контроля. Не буду углубляться в теорию, скажу лишь, что в основе любого ПК лежить бистабильная ячейка, которая из аналаговой "принудительно" преобразована в "цифровую". Но её переход из состония , к приеру, 0 в состояние 1, на самом деле, так же оценивается аналоговым способом (ну нет другого - транзистор он и в Африке транзистор). Так вот да же в такой заведомо более надежной конструкции, для чего собсна она и была придумана, всречаются кучами ошибки при определении состояни 0 или 1.
Как же бедт проверяться аналоговая схема, ведь двух одинаковых усилителей не бывает и фактор времени будет ещё сильнее сказывать на формах кривых в силу усталости элементов.
Так как же будет проверяться достоверность вычислений?
Хороший вопрос. Дело в том что нейронные сети в отличие от цифровой обработки информации обладают очень высокой устойчивостью к ошибкам. Даже при повреждении достаточно обширных объемов нейронной сети она сохраняет работоспособность и лишь несколько теряет точность. Т.е. как раз для нейронных сетей использование такой грубой элементной базы как резисторы очень оправдано т.к. позволяет очень просто и дешево создавать устройства сверхбыстрой интеллектуальной обработки информации. Быстродействие получается за счет параллельной работы каждого нейрона - в нейронной сети нет понятия количества операций в секунду, нет понятия алгоритма из последовательно выполняемых триллионов операций, поступаяющая на вход нейронной сети информация обрабатывается всеми нейронами одновременно, параллельно, за счет чего и получается огромное быстродействие. Совсем не обязательно чтобы номиналы резисторов были заданы с высокой точностью. Совсем не обязательно экранировать систему от шумов и помех.
Цифровые вычисления очень чувствительны к сбоям и ошибкам даже в одном бите из миллиардов. При работе с нейро-информатикой придется менять стереотипы. Очень многое будет казаться непривычным и невероятным:)
Да и тем более если сделать аппаратную разработку, понадобятся связи между каждым усилителем. Там однимим операционными усилителями не обойдешься, нужна будет схема управления, какому усилку адресован сигнал.
Это ты хочешь создавать переобучаемые сети - чтобы можно было переадресовывать связи между операционными усилителями. Я же пока не рассматриваю такие устройства. Я рассматриваю устройства в которых связи между нейронами зашиты изначально - при проектировании устройства. Т.е. никаких схем управления адресацией не нужно, достаточно просто проводов соединяющих нужные нейроны с нужными:) Т.е. я делаю упор на ДЕШЕВИЗНУ и ПРОСТОТУ устройства. И [b]возможность его изготовления в домашних кустарных условиях[b]. Жертвуя его программируемостью и универсальностью.
Для программируемости и универсальности пока незаменимым остается обычный компьютер.
Для чего могут понадобиться такие устройства? Все тот же пример что я приводил выше - преобразование изображения с видеокамеры в 3D-модель окружающей обстановки. Если реализовать такое устройтсво в роботе на процессорной технике то это будет очень дорогой мощный процессор который будет давать жалкую производительность в считанные кадры в секунду. При этом он будет всегда выполнять только эту программу в роботе - т.е. вся его универсальность и программируемость нафиг будет не нужна.
Вместо этого можно пойти очень дешевым и простым путем и получить быстродействие которое заставит смеяться над супер-пупер мощным процессором - создать раз и навсегда сформированную, не перепрограммируемую, сугубо специализированную на решении конкретной задачи нейронную сеть на базе резисторов и операционных усилителей:)
Вспомните советскую технику (автомобили) и сравните с современной зарубежной. В чем разница? Разница в том что советская техника проектировалась без использования средств САПР. Ошибки и просчеты вылазили уже в железе когда машины были построены. Доработки в уже построенные конвейерные линии вносить трудоемко и дорого. Поэтому совершенствовались такие автомобили очень мало и медленно. Современные автомобили тестируются задолго до того как начнется процесс их изготовления в железе - еще на стадии проектирования. Это стало возможным благодаря средствам САПР и виртуальной реальности. Гораздо проще, быстрей и дешевле тестировать виртуальную модель будущего автомобиля нежели ставить дорогостоящие эксперименты на реальном железном автомобиле на каждом этапе затрачивая много работы и денег на изготавление нового улучшенного прототипа.
Так вот пока нейронные сети создавались непосредственно "в железе" развитие их шло очень медленно и дорого. С появлением средств автоматизированного проектирования нейросетевых систем стало возможным отладить и отработать будущую нейронную систему на ее виртуальной модели - очень медленной но зато легко модифицируемой и перепрограммируемой. А уже когда виртуальная нейросетевая система отработана, отлажена и зарекомендовала свою безупречную работу в требуемой задаче - вот тогда ее можно переводить в железо. Нет смысла делать железо перепрограммируемым и универсальным. Есть смысл делать оптимизированные сформированные раз и навсегда дешевые нейросетевые устройства на дешевой элементной базе, изготавливаемые по простой дешевой технологии. При выходе устройства из строя просто выбрасываем его в мусорку и заменяем новым. Нет нужды ремонтировать.
Вообще нейросетевые системы не обязательно должны быть электронными. Природа например сделала их электро-химическими. Можно например сделать гидравлическую нейронную сеть:) - система шлангов и управляемых потоком воды клапанов:) Выбор элементной базы зависит от конкретных нужд в каждом конкретном случае. Например строители египетских пирамид решили использовать для этого каменные конструкции:) Для них видимо значимым был параметр долговечности а не быстродействия и универсальности:)
Oni
меня интересует именно аппаратная разработка
что конкретно нужно?
Для начала нужно иметь отлаженную и оптимизированную схему. А для получения такой схемы нужно средсво разработки иаких схем. Такое средство у меня есть - мой "язык программирования" нейронных сетей. Сам язык я пока обнародовать не буду но вот схемы думаю в изобили буду выпускать в самом ближайшем будущем. Имея такие схемы реализовать их можно в самой различной элементной базе. Тут уж каждый выбирает какая ему больше подходит в его конкретном случае.
Лично я хочу создать робота который бы делал всю рутинную работу по дому (готовил кушать, убирал в комнатах, стирал, мыл посуду) для этого мне нужны дешевые но быстродействующие нейронные сети. Поэтому резисторы и операционные усилители мне как раз подходят. В качестве резисторов буду использовать вольфрамовую проволоку различных диаметров и длины в комбинации - чтобы получить с некоторой приемлемой точностью нужные номиналы сопротивлений. Операционных усилителей нужно много. У меня есть идеи изготавливать транзисторы печатным способом на пластинах - химическим травлением. В общем это все идеи на будущее. Когда у меня будут деньги на соответствующее оборудование.
А пока придется пользоваться обычными микроконтроллерами.