ailev.ru

Обсуждение

В архиве: 20 комментариев.

Читать и комментировать в ЖЖ ↗

Имя не сохранено · 3 ноября 2016

Комментарий

есть еще в природе такой интересный цветок: BrainChip Inc со своим чипом SNAP: Autonomous Feature Extraction (AFE) System Developed: Unsupervised Visual Learning Achieved Это хитрый FPGA с биореалистичными синапсами: The AFE system is digital and hardware based (not a software program) The circuit implementation of SNAP64 is all-digital although the spikes are spatially and temporally distributed and asynchronous. The SNAP64 RTL has been implanted on a FPGA board from Dini Group La Jolla Inc. (La Jolla, Calif.) with multiple 20 million gate Xilinx FPGAs. The SNAP64 architecture is designed to access 65536 (64k) neurons within the same chip, and chips can be stacked to a total of 2^48 = 256B neurons. SNAP64 is fully configurable; the neurotransmitter type and level, neuro-modulators, synaptic connections, and neuron type can be configured through a microprocessor interface. Alternatively, these parameters can be set in the RTL for a dedicated design a closer modelling of biological neural networks; including the spike train method of data transfer and modelling of multiple modulations of signals at the synaptic connection. Synapses are at this time 18 bits wide, but there can be thousands of synapses contributing to the membrane potential of the neuron. The integrator in the dendrites is 22 bits wide, and the soma integrator is 24 bits wide. These component widths are easily configurable in the RTL if we need more or less resolution. The number of neurons and synapses is configurable in the RTL. We could put as many as 10,000 neurons and 5 million synapses on a single die. These are neurons that behave like biological neurons with multiple spiking modes and dynamic, temporal integrating synapses The system is implemented in digital hardware using BrainChip's unique parallel technology. All neurons and synapses are updated at a rate of one million per second. BrainChip's spiking neural network connectivity can be externally configured. Synapses are dynamic, that is, the properties of synapses change over time using the STDP learning rule. The output of many synapses is integrated by dendrites and a soma. The output of a soma is fed to a neuron's axon that emits one or more output spikes when a previously learned pattern is recognized. The spike from an axon is transmitted to the connected synapses using a proprietary fast communication protocol. The use of distributed memory located at the synapses means that SNAP64 is capable of updating neurons at a rate of millions per second and this has been taken up to 4Mupdates/s in an FPGA implementation The neurons and synapses are not multiplexed – unlike other designs like IBM's TrueNorth which are multiplexed 256x and do not learn. The advantage of not multiplexing is that they are thousands of times faster, that all memory can be distributed, which simplifies the learning method. The learning method we use is STDP – Spike Time Dependent Plasticity, which constantly accesses memory ------ The AVFE system was developed and interfaced with the DAVIS artificial retina purchased from its developer, Inilabs of Switzerland. DAVIS has been developed to represent data streams in the same way as BrainChip's neural processor, SNAP. Learns and identifies patterns in the image stream within seconds -- (Unsupervised Feature Learning) The system initially has no knowledge of the contents of an input stream. The system learns autonomously by repetition and intensity, and starts to find patterns in the image stream. BrainChip's SNAP learns to recognize features within a few seconds --->>

Имя не сохранено · 3 ноября 2016

Комментарий

--->> The SNAP spiking neural network learned the features of vehicles passing by the sensor within seconds. It detected and started counting cars in real time. The results of this hardware demonstration shows that SNAP can process events emitted by the DAVIS camera in real time and perform unsupervised learning of temporally correlated features. The DAVIS Dynamic Vision Sensor is an artificial retina that has an AER (Address Event Representation) interface, the same interface that is used in the SNAP Technology. The AER bus has become an industry standard. Rather than outputting frames of video, each pixel outputs one or more spikes whenever the contrast changes. A contrast change can be caused by movement. Spike events are transmitted over the AER bus at a maximum rate of 50 million events per second. The BrainChip SNAP technology can process 100 million events per second. The AVFE network autonomously learns to identify objects moving through its vision field. The second labelling neural network is trained to start counting these objects. The AFE system is comprised of a SNAP spiking neural network that learns from input patterns and performs autonomous feature extraction and data labeling for pattern recognition. The system can be used to process a wide range of real-world events and digital data from a multiple of sensors. The system can learn from both recorded and real-time input data. The learned features can be stored in a knowledge library. This library of learned behavior can be loaded on to further systems in order to instantaneously assimilate the learned features. The system is composed of three SNAP units. The first unit consists of sensory neurons that map input data to spike patterns that are distributed spatially and over time. Similar to a biological brain, these sensory neurons will fire spikes at different times depending on the input they receive. The outputs of the sensory neurons are then transmitted at a rate of up to 100 million events per second to the next unit that performs autonomous feature extraction, also called unsupervised feature learning. These 100 million events are distributed to thousands of synapses in parallel, which are updated one million times per second. This unit learns the main features that characterize a given set of data. For example, this unit learns the features of letters and digits when the input data consists of handwritten characters. The autonomous feature extraction unit is composed of a spiking neural network that utilizes an unsupervised learning rule (e.g. Spike Timing Dependent Plasticity: STDP), and lateral inhibition so that different neurons in the network learn different features. Lateral inhibition means that the first neuron to recognize a specific input pattern inhibits all others in the same layer. The learning process that occurs in this unit can run continuously or over a specific period of time. The SNAP learning method has proven to be very fast. The output of the autonomous feature extraction unit is forwarded to the labeling unit. This unit consists of a spiking neural network that is trained in a supervised way to map learned features to output labels. For the handwritten characters' example, the output labels could be letters and digits, or complete words that the system has learned to recognize. The output labels can be used in an external device like a Central Processing Unit (CPU) for post-processing. We look forward to providing further updates on the application of this exciting new technology through the year.

Имя не сохранено · 3 ноября 2016

Комментарий

О, ProBase допилили до релиза. Кстати, никакого "отставания в 4 года" нет и в помине -- ProBase по ряду параметров лучше FreeBase, хотя бы тем, что он автоматически собирается и включает намного больше понятий. А про хранение отношений в базе данных -- да бог с вами, давно это везде есть. Видимо, вы FreeBase в глаза не видели. Как получить вероятности (частоты) отношений? Да просто устроить замыкание графа глубины N и посчитать количество одинаковых дуг -- это и будет частота.

Анатолий Левенчук · 3 ноября 2016

Комментарий

А чего о них писать? Сегодня довольно много чиповых стартапов, в том числе на спайковых нейронах. К тому же нашли хитрый трюк по компиляции традиционных нейронных сеток в спайковые (использовали для TrueNorth), так что всё происходит стремительно.

Ответ на комментарий

Анатолий Левенчук · 3 ноября 2016

Комментарий

А откуда "отставание в 4 года"? Я ничего такого не писал. У майкрософта всё вполне state-of-the-art. FreeBase я в глаза видел, много раз. Но мне почему-то кажется, что все эти работы с отношениями ползут в сторону embeddings (например, "направление" между двумя понятиями -- это отношение, как в знаменитых примерах про "король, королева, женщина, мужчина"). И работа майкрософтовцев тоже шаг туда, хранимость немногих жёстких явных связей-отношений в базе там не афишируется с порога, в отличие от FreeBase.

Ответ на комментарий

Имя не сохранено · 3 ноября 2016

Комментарий

>А откуда "отставание в 4 года"? Я ничего такого не писал. У майкрософта всё вполне state-of-the-art. А, пардон, это Anton Kolonin в FB написал. >FreeBase я в глаза видел, много раз. Но мне почему-то кажется, что все эти работы с отношениями ползут в сторону embeddings (например, "направление" между двумя понятиями -- это отношение, как в знаменитых примерах про "король, королева, женщина, мужчина"). У одного из сотрудников AOT я 10 лет назад читал работу -- про бинарность предложения: не подлежащее главнее, не сказуемое, а оба вместе важны и нужны. Сейчас бы я расширил эту мысль ещё дальше: предложение -- это не иерархия, это кортеж: (вася, в быстром темпе, убежал, к другу на север). Но можно то же самое сказать и по-другому: (оперативно, петин друг, оказался, у него дома, на севере) -- смысл тот же, слова разные. Ни embedding, ни отношения не способны эту близость смыслов адекватно описать. Не то, чтобы это совсем тупиковые ветки, но это очень грубые "приближения". Embedding -- это что-то типа SVD: взяли собственные вектора и собственные значения для соотношений понятий, опустили менее важные части, а более важные части используем. Если обобщить оба предложения до одинакового embedding, то всё, что вы получите -- это "кто-то куда-то быстро переместился". Значит, embedding -- это лишь одна из частей решения, и ваши рассуждения вида "что куда будет трансформироваться для решения задачи" -- несколько наивны. Конечно, если добавить к embedding сверху несколько рекуррентных слоёв, то вы можете получить память, которая будет элементы этого кортежа хранить. Это уже больше похоже на черновик одного из вариантов решения, да? Только очень затратно так хранить данные и производить вычисления. 100 слов в секунду при достаточно низком качестве (для более высокого качества нужно увеличивать толщину слоёв и их количество, а также учить на экспоненциально большем датасете -- в 10 раз больше на один доп слой -- впрочем, тут есть ResNet , у которого этого ограничения нет, но его с рекуррентными слоями пока ещё плохо умеют делать... ну вы поняли. технология разумная, но ожидается крайне низкий рост качества / время, совсем неудовлетворительный на текущий момент и даже на 10 лет вперёд, и непонятно, можно ли как-то этот рост ускорить). В то же время, символьные подходы работают моментально, но требуют более качественной базы данных и вручную написанных операций на ней. Неплохо проработал данный подход для русского языка Тузов В.А. (почитайте работу "Компьютерная семантика русского языка"), но довести до ума не смог бы -- вручную составленный словарь невозможно нормально поддерживать. На мой взгляд, проблема с обработкой текста именно в отсутствии большой базы данных и автоматического построения операций на ней. ProBase и FreeBase -- это часть именно этого решения, ведь кошка -- это не на 80% животное, как говорит embedding, а на 100%, и в то же время кошка -- это вообще не собака, хоть embedding и говорит, что она на 34% собака (и на 23% "и"!). Вот эту вот "чёткость" (100% и 0%) embedding-и и нейросети вообще не способны обеспечить (помните решение FizzBuzz на Tensorflow с всего девятью ошибками? ). А для построения базы данных и операций вполне могут использоваться нейросети и embeddings -- скажем, ассоциативное мышление с использованием embedding -- по сути, компактная приближённая версия транзитивного замыкания графа понятий -- вполне может помогать (помните алгоритм A*? https://ru.wikipedia.org/wiki/Алгоритм_поиска_A* ).

Ответ на комментарий

Анатолий Левенчук · 3 ноября 2016

Комментарий

А вот тут вы, как мне кажется, примерно пересказали содержание моего основного поста -- хотя и немного другими словами, а ещё примерно это же рассказывают тексты в статьях по ссылкам из поста ))) Я ж из computational ontology, поэтому всё это хорошо понимаю. И когда я говорю в посте, что "разговаривали со многими командами", то именно об этом и разговариваем. Мы много лет занимается тематикой инженерных данных, семантических моделей данных и онтологий для систем CAD/PLM. А так как в инженерии до сих пор значительная часть информации создаётся и передаётся в виде текстовых документов, мы отслеживаем и работу с естественным языком. В 2010-12 годах мы разработали методику для "ручного" преобразования инженерных текстов в семантические модели - http://techinvestlab.ru/TabLan/ . В 2013 году нам удалось поработать со специалистами ABBYY и сделать демонстрационный пример по извлечению формальных моделей из текстов с использованием Compreno - про это есть презентация http://www.slideshare.net/vvagr/reference-dataextraction (при этом мы понимаем, что сейчас в Compreno уже используется обучение в создании модели языка, но не deep learning пока). В то же время за рубежом идёт множество экспериментов, включая end-to-end подходы к извлечению моделей (типа описанных в http://arxiv.org/abs/1601.00770 или в http://arxiv.org/abs/1601.01280), или обучение на смешанных текстовых и структурированных данных (типа http://cs.stanford.edu/people/danqi/papers/emnlp2015.pdf ). Есть очень многообещающие попытки выучить представления, удовлетворяющие онтологическим ограничениям, например, попытка выучить представление, отражающее отношение специализации-генерализации в http://arxiv.org/abs/1511.06361 . Есть и более "простые" подходы, но тоже интересные - типа https://arxiv.org/abs/1605.07918 . Так что этот мой пост -- очередной в некоторой генеральной линии, близкой к описываемой вами: для работы с формализацией и "интуитивных ходов" используются сетки, но большой кусок работы (несмотря на потерю информации при сжатии!) идёт в графовых структурах в каком-то варианте логического вывода. Ну, и есть ещё разные варианты этого логического вывода, типа http://cis-linux1.temple.edu/~pwang/Writing/EverydayReasoning.pdf

Ответ на комментарий

Имя не сохранено · 4 ноября 2016

Комментарий

Не знаю, может и понимаете, но регулярно пишете про "стремление к embedding", игнорируя необходимость в полноценном NLP pipeline, который не заменят эти embedding, и ссылки ваши обычно полнейшая фигня -- обычно про то, как кто-то что-то извлек из текста (в небольшом количестве), не умея этот текст прилично парсить! Что с отрицанием и сложными логическими конструкциям при игнорировании NLP получится, всем понятно? (В state of the art для анализа эмоциональной окраски можете глянуть, там есть возможность на логику забить -- 86% качества на такой элементарной для человека задаче. Эти 14% ошибок (минимум) будут в вашей логической модели, создадут противоречия, а из противоречий можно вывести всё, что угодно...) Ну а строить модели по compeno -- тоже весело, вы как я понял, пропустили уровни семантического анализа и человека-моделирующего (с его внутренним пониманием и целесообразностью) и решили в модель добавлять все результаты синтаксического анализа.. поправьте меня, если я ошибся в деталях, но проблематика та же. Вы не признаете необходимость сложного pipeline, считая возможным заменить его на end-to-end learning. Хотя даже люди так не умеют учиться -- сами же учите взрослых моделированию.

Ответ на комментарий

Анатолий Левенчук · 4 ноября 2016

Комментарий

У нас с вами разные модели "сложного pipeline" -- у меня там много уровней иерархии репрезентаций и платформенности, много уровней различного абстрагирования. А у вас именно что "pipeline" -- линейка преобразований, как вы её описываете. Поэтому понимание end-to-end у нас разное. Ну, и понимание embeddings (которые я считаю только priors для каких-то дальнейших с ними действий). И понимание "логики". Всё разное, но и в моей и вашей речи встречаются какие-то одинаковые слова (не факт, что мы дальше эти одинаковые слова понимаем одинаково).

Ответ на комментарий

Имя не сохранено · 4 ноября 2016

Комментарий

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

Ответ на комментарий

Имя не сохранено · 4 ноября 2016

Комментарий

Вы потрясающий самоделкин -- пользуетесь только выдуманными лично вами словами :) Хотя не, ещё понадёрганными из тысячи документов, без выдачи определений при их использовании). Я пытался считать, что ваши понятия хоть как-то соответствуют используемым в индустрии и пытался под них подстроиться, но у меня регулярно ничего не получается. >У нас с вами разные модели "сложного pipeline" -- у меня там много уровней иерархии репрезентаций и платформенности, много уровней различного абстрагирования. А у вас именно что "pipeline" -- линейка преобразований, как вы её описываете. Одно другому не мешает, устройство частей, их границы могут быть по-разному оформлены, деление на уровни -- вообще абстракция ради удобства кодирования, и поэтому как оно устроено на низких уровнях мне кажется вообще не имеет смысл обсуждать. Что содержит ваша "иерархия репрезентаций"? Почему она "иерархия"? (и что означает ваше изобретённое слово "платформенность"?) Вы собираетесь фиксировать интерфейсы между частями или это всё будет кашей из нейросетей? Именно эта фиксация интерфейсов и создаёт абстракцию "pipeline". И, кажется, я объяснил, почему нужен и важен pipeline -- для существенного увеличения качества работы при ограниченных вычислительных ресурсах. >Поэтому понимание end-to-end у нас разное. Смысл у этого понятия вроде бы один -- полная обработка информации. Или вы что-то другое имели в виду? Вообще, я не очень понимаю, зачем вы приводите ссылки на работы, с которыми, видимо, несогласны. Чтобы показать "а вот такое ещё в мире бывает"? Я думал, вы пытаетесь проиллюстрировать вашу позицию -- но теперь вы говорите, что она отличается от того, что описано в этих работах!

Ответ на комментарий

Анатолий Левенчук · 4 ноября 2016

Комментарий

У меня ж это не первый и не второй текст, где я об этом пишу. Первый раз как-то развёрнуто об этом я писал, ссылаясь вот тут: http://ailev.livejournal.com/1240509.html
Интереснейшие замечания про word embeddings ровно вдоль этой линии рассуждений (сетка мощна, всё будет в ней) дал приглашённый Нандо де Фрейтасом в чат Ed Grefenstette (http://egrefen.com/news.html, он активно работает с лингвистикой -- вот тут его свежие результаты: http://arxiv.org/find/cs/1/au:+Grefenstette_E/0/1/0/all/0/1). Тут нужно заметить, что в ответе он главным образом адресует "заранее выученные" word embeddings, которыми завалена Сеть: -- самые разные подходы к word embeddings по сути are effectively equivalent in performance and representational power, up to the correct choice of hyperparameters. Вот тут многочисленные ссылки по embeddings, подтверждающие эту одинаковость, включая дополнительное замечание, что для их построения никакой глубокой сетки не нужно, хватает мелкой сетки: http://gavagai.se/blog/2015/09/30/a-brief-history-of-word-embeddings/. И ещё https://levyomer.wordpress.com/2015/03/30/improving-distributional-similarity-with-lessons-learned-from-word-embeddings/ и https://levyomer.wordpress.com/2014/09/10/neural-word-embeddings-as-implicit-matrix-factorization/ (и там ещё много -- https://levyomer.wordpress.com/category/word-embeddings/). Хе-хе, не могу не заметить, что matrix factorization любимая тема для compressive sensing -- https://sites.google.com/site/igorcarron2/matrixfactorizations и оттуда прямой ход на вычислительную оптику! Хотя в этом пункте про word embeddings это явно оффтоп. -- word embeddings ... in no way a good general representation of semantics, but rather just one very successful example of an application transfer learning between contextual prediction (word given context, or context given word) and other domains with very different objectives (sentiment analysis, language modelling, question answering), either by serving as representations in their own right, or as initial settings to aid training. -- эмпирическое возражение: если данных достаточно, то ничего заранее выученного не нужно. Более того, если вам нужно будет развести значения "тачка" и "автомобиль" для сленга и официальной речи, то прихват заранее выученных word embeddings будет даже лишним, и лучше бы для этого учить модель языка заново. -- концептуальное возражение: для RNN embedding matrix это часть самой сетки! ... embeddings are just weights of a linear transform from the one-hot input into vectors used by the network's internal dynamics. Meaning and interpretation, if there is such things, are present in the state of the network, rather than solely in the embeddings, and it makes as much sense to seek to interpret the weights that constitute embeddings as it does to seek to interpret any other weight in the network. Pre-training embeddings and using them in another network, under this view, is even more explicitly just a form of transfer learning, in that we are initialising the weights of part of a task-specific network, and perhaps freezing them, with information obtained from another task. It's not a bad strategy, but I think people focus too much on this very specific form of transfer learning rather than, more generally, on other options there are out there (or yet to be discovered) to help us deal with data paucity, and to best share information across similar tasks. Вот! Meaning and interpretation -- Эд различает "значение и смысл" и напирает на то, что нужно работать и со значением/знанием (переносимым из других ситуаций опытом), и со смыслом (transactional information -- имеющей смысл только в контексте конкретного действия). Для меня это различение всегда было важно, и теперь понятно, какая группа в deep learning с этим работает -- купленные в состав DeepMind люди из http://www.darkbluelabs.com/ -- они там все из Оксфорда.
Но потом в разговорах с avlasov я начал все такие рассуждения называть работой с priors -- всё одно байесовская терминология и идеи начали глубоко проникать в эту предметную область, и они оказываются очень удобными для описания.

Ответ на комментарий

Имя не сохранено · 4 ноября 2016

Комментарий

По-прежнему нифига не понятно. 1) Какое ваше отношение к написанному Нандо де Фрейтасом и процитированному вами? 2) Что такое "работа с priors"? "Рассуждения"??? 3) Причём тут "значение и смысл" вообще? 4) "и напирает на то, что нужно работать и со значением/знанием" -- где это? в процитированных фрагментах про это ничего нет. "it makes as much sense to seek to interpret the weights that constitute embeddings as it does to seek to interpret any other weight in the network" -- это про NN explainability, а не про значение слов в тексте! Как раз Nando de Freitas выражает сомнения в идее поиска интерпретации того, что выучил embedding. 5) "и со смыслом (transactional information -- имеющей смысл только в контексте конкретного действия)" -- опять ваша выдумка? 6) причём тут вообще "байесовская терминология и идеи"? Distributional semantics -- это не про knowledge/meaning, это про semantics (и частично про syntax). Фиксирование смысла в понятиях, получаемых с помощью embedding -- на уровне семантики слов, а не подразумеваемого значения. Слово "new" может быть частью значения "город" слова "New York", а слов "железная" -- частью понятия "железная дорога" (или "железная леди" и подразумевать в тексте Маргарет Тетчер!). Если же это слово банк -- моделируемое значение embedding представит в виде смеси семантики слов "банка", "банк" и "Банк" ( если мы предварительно не запихнём embedding в linguistic pipeline, конечно, чтобы перед embedding был "банк:N", "банк:PN" (proper noun), "банка:N" -- уже лучше, но есть ещё куча случаев омонимии внутри одной части речи) И в любом случае, что насчёт прагматики? Её embedding вообще не фиксирует, только чуть-чуть косвенно. В онтологиях (и в моделировании) же есть нужда именно в знании, которое основывается на значениях -- семантики, трансформированной прагматикой, при этом среднее количество различных значений на слово -- где-то около числа два (с прагматикой посчитать сложнее, но тоже соответствие не 1-к-1). А "priors" в "байесовской терминологии" -- это про значение вероятностных переменных до опыта. В значении "используемое значение в тексте" не должно употребляется, потому что если в этот раз в тексте написано "New" для фразы "New York", это не значит, что теперь слово "New" будет больше соответствовать значению фразы "New York" (применяя теорему байеса) -- ведь в другой раз это слово может использоваться в другом значении! (И в любом случае, семантика -- это другой тип информации, его нельзя использовать как "знания".)

Ответ на комментарий

Анатолий Левенчук · 4 ноября 2016

Комментарий

Ну нет, я недостаточно творческий, чтобы запускать неологизмы ))) Но понадёргать из тысячи документов -- это у меня легко. Без выдачи определений -- определения обычно в текстах, и я даю на эти тексты ссылки. Другое дело, что тексты с определениями иногда могут быть довольно давно по времени мной помянуты, и тут уж я ссылок уже не даю. "Лабораторный журнал" -- это ж именно "журнал", это не набор stand alone публикаций для широкой публики ))) И да, ещё я регулярно делаю mapping понятий из одних рабочих онтологий в другие -- но это и есть мой творческий вклад, равно как и работа моего понимания. Не пересказывать же тупо содержание статей разных научных школ! Про уровни абстракции: это самые разные "меты" -- красивая иллюстрация тут: http://ailev.livejournal.com/1073932.html. Подробней про разные "мета" -- http://ailev.livejournal.com/1204705.html, про формальное образование в этой области -- http://ailev.livejournal.com/1263511.html, логические уровни Бейтсона (эпистемологические, "обучения", а не онтологические его результатов) затрагиваются в разделе "когнитивной архитектуры" http://ailev.livejournal.com/1210678.html, многступенчатая объективация и объективизация --http://ailev.livejournal.com/1132449.html. И, конечно, сюда нужно добавить коннективизм в количестве: отношение между представлениями в разных уровнях нейронной сетки, разные уровни абстракции и архитектуры из разных стеков (уход от чистой иерархии слоёв-уровней, выход в сложные fully differentiable architectures с памятью, вниманием, различными обработчиками логики, выполнением алгоритмов и т.д.). Например, для меня этот ход на абстракции-меты-слои наиболее явно выражен в тексте http://ailev.livejournal.com/1274014.html -- "глубина" в абстракциях для меня очень важна. Что касается платформенности -- то это из системной инженерии, когда мы обсуждаем модульный viewpoint, то набор взаимосвязанных модулей с прописанным к ним общим интерфейсом часто называют платформой. Вот про модульность: http://ailev.livejournal.com/1294242.html, а платформы я регулярно ещё обсуждаю в рамках рассказа про интеллект-стек, это ж как раз платформенный стек: http://ailev.livejournal.com/1296272.html Моя позиция по поводу семантики: семантика и embeddings именно про "значения", они не относятся к ситуации. Семантика переносится между ситуациями, это "знания" по определению. Знания "длящиеся" между ситуациями, для ситуации семантика (в том числе выраженная через embeddings, или через правила) может рассматриваться как priors -- то, что определяет, но не точно ситуативный смысл. Ибо смысл всё-таки строится на базе значений, но не соответствует им. C другой стороны, прагматика как раз относится к ситуации, она связана с (деятельностно определяемым) смыслом, и она апостериорна, она считается для ситуации. Я не верю в существовании однопарадигмальной обработки информации для любых значимых практических целей хотя бы небольшого разнообразия классов задач. Ибо есть no free lunch theorem. Поэтому я глубоко и горячо "за" архитектуры, где есть и символическая работа, и нейросетки, и байесовские сетки, и эволюция и всё остальное. Но end-to-end правильно обеспечивать в режиме обучения. То есть онтологии (семантики, priors) нужно не кодировать руками, а выучивать. Опять же, для этого выучивания можно использовать что-то и создаваемое руками -- не пропадать же добру! То есть для меня выучивание начинается с того, что уже известно (например, можно использовать какую-нибудь FreeBase в качестве источника для priors, а потом только доучивать), а не с попыток unsupervised learning с полного нуля. Или можно использовать какой-нибудь хороший вручную сделанный парсер: но он должен быть потом не вручную допиливаем, а доучиваем (и можно обсуждать, в какой репрезентации -- статьи в комментируемом тексте говорят, что необязательно выучивать его для работы в виде сетки, можно выучивать знания о парсинге в сетку, а затем при её использовать для порождения эффективной программы на лиспе -- чтобы reasoning был эффективен при не слишком эффективном обучении).

Ответ на комментарий

Анатолий Левенчук · 4 ноября 2016

Комментарий

Ссылки на работы я привожу, чтобы а) мои мысли были хоть как-то понятны, б) чтобы не искать потом эти ссылки "с нуля", в) как раз проиллюстрировать мою позицию. Так, в ссылках этого поста показываются гибридные архитектуры, где есть и символическая обработка (по одной ссылке она для скорости исполнения вывода -- программа на лиспе, по другой ссылке она для компактного представления большого объема информации в памяти) и нейросетевая обработка. Это примеры моей мысли про гибридную мультипарадигмальную работу, хотя я не уверен, что именно эти конкретные архитектуры будут процветать. Но общее направление -- да, именно такое. Вот поглядите, я предыдущий пост писал на тему стыка нейросетей и reasoning -- http://ailev.livejournal.com/1266905.html, там целый абзац ссылок, и все они про стык символического reasoning и коннекционистского определения материала, на котором этот reasoning ведётся.

Ответ на комментарий

Имя не сохранено · 4 ноября 2016

Комментарий

>может рассматриваться как priors -- то, что определяет, но не точно ситуативный смысл Не может. У вас безосновательное смешение понятий разных типов. Семантика -- это про символы. Знания -- это про значения этих символов в реальной жизни. Нужно не символы "доучивать" теоремой байеса, а учиться интерпретировать эти символы -- переводя их в знания, для этого основываясь на других знаниях. Если вы будете для этого использовать только другие символы, то ничего не получится -- вы по прежнему будете в царстве символов. Пример с Нью-Йорком я приводил, чтобы вы поняли, что в этой интерпретации два слова (символа) могут становиться одним понятием (элемент знания) -- и хотя бы поэтому важно эти два типа разделять. >Поэтому я глубоко и горячо "за" архитектуры, где есть и символическая работа, и нейросетки, и байесовские сетки, и эволюция и всё остальное А зачем это всё в архитектуре? Чтобы враг не догадался, как оно работает?

Ответ на комментарий

Имя не сохранено · 4 ноября 2016

Комментарий

>Что касается платформенности -- то это из системной инженерии, когда мы обсуждаем модульный viewpoint, то набор взаимосвязанных модулей с прописанным к ним общим интерфейсом часто называют платформой. Вот я про это и говорю. Образование новых слов с помощью переноса значения других слов. Было слово "платформа", имело конкретное значение ( https://ru.wikipedia.org/wiki/Компьютерная_платформа -- не совсем такое, как у вас, а вашего термина "из области инженерии" в википедии, увы, не зафиксировано). А у вас появилось слово "платформенность", и значение его теперь знаете только вы, а другие должны догадываться, что вы под ним подразумеваете. Если компьютерная платформа -- это некая среда выполнения (по каноническому определению), то "платформенность" -- это что вообще такое? Пригодность для какой-то среды выполнения? Выполнимость? А в системной инженерии что может означать "платформенность"? Я вообще теряюсь в догадках.

Ответ на комментарий

Имя не сохранено · 7 ноября 2016

Комментарий

У трунорза передача данных по шине мултиплексируется, поэтому он в тыщи раз медленнее. А у снапа просто топология, без мултиплекса. У снапа память размазана по всему чипу. А у трунорза блоками. У трунорза количество нейронов ограничено шириной адреса. У снапа нет адресации. У снапа всё асинхронно. Это дает возможность снапу масштабироваться до сотен миллиардов нейронов. У трунорза нейроны простейшие, а у снапа сложные, био-реалистичные. У снапа FPGA & RTL каждый раз делаются специально под конкретное приложение - вся топология, настройки нейронов, синапсов и пр. - всё application specific. Как кодировать трунорз - не понятно - разве что компилировать из обычного диплернинга. А как кодировать снап смотрят в нейробиологии. В текущей версии снап самостоятельно добывает фичи впервые виденных объектов в течение нескольких секунд. Далее с фичами работают супервайзед лернингом. По крайней мере раньше работали так. Супервайзед выученная сетка просто подсчитывала проезжающие автомобили. Другая система обнаруживала пассажиров метро, ведущих себя нестандартно. А счас они поглотили французскую CV фирму и испытвают совместную систему для казино, которая следит за соблюдением правил в карточных играх. Хочется подчеркнуть принципиальную возможность масштабируемости снапа до сотен миллиардов нейронов без возникновения бутылочных горлышек. Обычных суперкомпьютеров экзаскейл масштаба еще долго нам не видеть из-за горлышек, а нейроморфный суперкомпьютер пожалуйста. Язык не поворачивается назвать его полностью асинхронным. Все-таки спайки его неким образом синхронизируют.

Ответ на комментарий

Анатолий Левенчук · 7 ноября 2016

Комментарий

Конечно, всё это интересно. Я думаю, что сейчас из stealth режима ещё несколько чип-разработчиков нейроархитектур выйдут. И тоже учтут опыт трунорза.

Ответ на комментарий