Saturday, February 24, 2018

MIT creates a course in AGI - eight years after Todor Arnaudov at Plovdiv University

Well, good job, MIT - just 8 years after my first course in AGI at Plovdiv Univesity and 7 after the second. I'd like to thank to my Alma mater and prof. Manev and prof. Mekerov, too.  Виж Програмата на курса по Универсален Изкуствен Разум (УИР) на български от страницата на университета, и на следващия курс. Лекции, материали (Lectures, materials - some in English): http://research.twenkid.com

MIT's course:

https://agi.mit.edu/

It's open and it seems it has started a month ago in January 2018.

Watch the lectures in Lex Fridman's channel on Youtube.



Me with my best students at the end of the first course:



* The shirt with the caption "Science = Art + Fun" is from my participation at the science communication competition "FameLab Bulgaria" in the previous year ("Лаборатория за слава").

Right, I looked like if I were the youngest student... :D

...

( Edit: I noticed I've first written "seven years since the first", but the first one was in 2010. So it's almost 8 years - spring 2010)

Friday, February 16, 2018

Тошко 2.070 - управление на синтезатора на реч чрез Python и PHP | Toshko 2.070 speech synthesizer

Новата версия на синтезатора за желаещи да експериментират слуша за команда с изказване, записва изказаното в mp3-файл и го връща на клиентското приложение, което решава дали и как да го просвири. Примерният скрипт на Python извежда двоичните данни в конзолата, а този на PHP ги записва на диска и просвирва файла.

Изтегли Тошко 2.070

Сайт на Тошко 2

Новото:

1. Тошко 2.070 (EXE) -  нов изпълним файл.

2. Скриптове на Python2.7

Папка /scripts

Може да се наложи да инсталирате и няколко библиотеки: Installing python modules

win32api
win32gui
win32con

Ако автоматичното настройване на пътищата е наред и не ползвате и други версии (напр. Python 3.x), то изписването на "python" в конзолата в папката на скриптовете би трябвало да извика интерпретатора:


> python toshko.py

Ако не се получава и не ви се работи с настройки на PATH/Environment, задайте пълния път:

>"C:\Python27\python.exe" toshko.py
('Thu Feb 15 17:57:20 2018', 'Toshko POST Server Starts - localhost:8079')


toshko.py - POST-сървър
wmcopydata.py -  Изпращане на съобщение с изказването към синтезатора

Отворете toshko.py и настройте пътя до папката, където синтезаторът извежда mp3-файловете

Например, ако сте инсталирали програмата в  C:\\program files\\toshko2\\
то конфигурирайте toshko.py като допишете пътя:

mp3Path = "C:\\program files\\toshko2\\mp3\\"
(Важно - ползвайте двойни наклонени черти).

3. Скриптове на PHP
Папка /scripts

say0.php
say1.php

Нужно да имате включен PHP-сървър, напр. чрез WAMP.

Поставете файловете в подходящата папка на сървъра, напр. C:\WAMP\WWW\WEB

След това скриптовете се извикват през четец (браузър):

http://localhost/web/say0.php



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

Желателното положение е дистанционното управление да контролира говорния апарат във всички детайли, така че да може и обработката на текста - ударения, паузи, фрази, анализ и пораждането на интонационни контури и пр. да се изведат в по-лесен за промяна вид, например на Питон.

За съжаление не ми се занимаваше да го продължа тогава -  "някой ден".

 called do_POST?
tosh-PC - - [15/Feb/2018 17:24:17] "POST / HTTP/1.1" 200 -
{'@consonants': ['0.5'], '@speed': ['1.0'], '@say': ['\xd0\x98\xd1\x81\xd0\xba\x
d0\xb0\xd0\xbc \xd0\xb4\xd0\xb0 \xd0\xba\xd0\xb0\xd0\xb6\xd0\xb0 \xd0\xbd\xd0\xb
5\xd1\x89\xd0\xbe...'], '@vowels': ['2.0']}
['\xd0\x98\xd1\x81\xd0\xba\xd0\xb0\xd0\xbc \xd0\xb4\xd0\xb0 \xd0\xba\xd0\xb0\xd0
\xb6\xd0\xb0 \xd0\xbd\xd0\xb5\xd1\x89\xd0\xbe...']
(...)
pythonSay4383926
Before say1251 = ...
BUSY... Communicating with Toshko...
:::f,14,0.5,7,2.0;$$$pythonSay4383926;

wmcopydataB(say)
before: char_buffer = array.array(, binascii.a2b_qp(say))
before: char_buffer
array('B', [58, 58, 58, 102, 44, 49, 52, 44, 48, 46, 53, 44, 55, 44, 50, 46, 48,
59, 36, 36, 36, 112, 121, 116, 104, 111, 110, 83, 97, 121, 52, 51, 56, 51, 57,
50, 54, 59, 10, 200, 241, 234, 224, 236, 32, 228, 224, 32, 234, 224, 230, 224, 3
2, 237, 229, 249, 238, 46, 46, 46])
60
25105400
pythonSay4383926
(...)\mp3\pythonSay4383926.wav.mp3
OK! READY for new requests

.................

"C\Python27\python.exe" wmcopydata.py

wmcopydataB(say)
before: char_buffer = array.array(, binascii.a2b_qp(say))
before: char_buffer
array('B', [36, 36, 36, 107, 117, 114, 49, 46, 109, 112, 51])
11
20800528
wmcopydataB(say)
before: char_buffer = array.array(, binascii.a2b_qp(say))
before: char_buffer
array('B', [36, 36, 36, 197, 245, 238, 238, 238, 46, 46, 46, 32, 195, 250, 231,
32, 227, 238, 235, 255, 236, 32, 46, 46, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57
)
34
20800688



Monday, February 5, 2018

Sensori-Motor Grounding of Surface Properties - an Exercise Trace of the Thoughts and Tree of Questions by Todor from 2011 in AGI List

After the selected emails from 2012 where I discussed generalization and the real meaning of "invariance" in 3D, I'm sharing another selected letter from the AGI list on general intelligence and sensory-motor grounding and its connection to symbolic/abstract representation. The "glue" of this to a real system is the specific processing environment, which applies the sensori-motor mapping and gradually traverses the possible actions ("affordances") within a specific input space (a universe, an environment) and maps them to the sensori data hierarchically with incremental complexity. It should gradually increase for example the number and the range - e.g. involving more modalities of input and output (action), wider range in space and time - of the parameters defining a particular current "highest complexity" conception, which in the example below are eventually represented as words ("a house", "a surface", ...).

The system's "motor" should be "ignited" to explore and the exploration should generate the higher level representations out of the simple sensory inputs like the ones explained below.

Note that the learning - the inductive, discovery - process starts from the end of this "trace of the thoughts". The reasoning was to show that it is possible and even easy/obvious to introspectively trace it from the general conceptions down to the specific and how "low complexity" these abstractions actually were.


See also:

Todor's: "Chairs, Buildings, Caricatures, 3D-Reconstruction..." and that semantic analysis exercise back from March 2004 Semantic analysis ...

Kazachenko's "Cognitive Algorithm" which claims to incrementally add "new variables".


from Todor Arnaudov twenkid @ ...
to agi@listbox.com
date Sun, Sep 11, 2011 at 3:12 AM
subject Re: [agi] The NLP Researchers cannot understand language. Computers could. Speech recognition plateau, or What's wrong with Natural Language Processing? Part 3
mailed-by gmail.com (....)

IMHO sensorimotor approach has definitely more *general* input and output - just "raw" numbers in a coordinate system, the minimum overloaded semantics.

[Compared to "purely symbolic". Note that sensori-motor doesn't exclude symbolic - this is where it converges after building a sufficiently high or long hierarchy (inter-modal, many processing stages, building an explicit discrete dictionary of patterns/symbols) and when it aims at "generality", "compression" or partially arbitrary point of view of the evaluator who's deciding whether something is "symbolic". The way sensori-motor data is processed may also be represented "symbolically", "mathematically" (all code in a computer is supposed to be). The "not symbolic" sense is that it's aimed to be capable of mapping the structure of the emerging conceptions, correlations, "patterns" ("symbols"...) to a chain or a network, or a system of discoveries and correlations within a spatio-temporal domain in the "general" "raw sensory input" from the environment, or one that can be mapped to such input. On the other hand the "purely symbolic" combinations have no explicit connection to that kind of "most general" "raw input". Note, 7.1.2018]
That way the system has higher resolution of perception and causality/control (my terms), which is how close the output/input can be recovered to the lowest laws of physics/properties of the environment where the system acts/interacts.

I think "fluidity"/"smoothness" that Mike talks about is related to the gradual steps in resolution of generalization and detail of patterns which is possible if your start with the highest available sensory resolution and gradually abstract details while keeping relevant details at relevant levels of abstraction, and using them on demand when you need them to maximize match/precision/generality. When system starts from too high an abstraction, most of the details are gone.

[However, that's not that bad by default, because what remains is the most relevant - the spaces of the affordances are minimal and easily searchable in full, even introspectively. See below. Note, 5.2.2018]

BTW, I did this little exercise to trace what really some concepts mean:


[Starting randomly from some perception or ideas, thoughts and then the "Trace of the thoughts" process should converge down to the basic sensori-motor records and interactions from which the linguistic and abstract concepts have emerged and how.]...

What is a house?
- has (door, windows, chairs, ... ) /

What is a door?

has(...)... //I am lazy here, skip to few lines below...

is (wood, metal, ...)

What is wood?

is(material, ...)

What is material?

What is surface?

What are material properties?

-- Visual, tactile; weight (force); size (visual, tactile-temporal, ...)

has(surface, ...)

is(smooth, rough, sharp; polished...)


What are surface properties? //An exercise on the fly

- Tactile sensory input records (not generalized, exact records)

- Visual sensory input -- texture, reflection (that's more generalized, complex transformations from environmental images)

- Visual sensory input in time -- water spilled on the surface is being absorbed (visual changes), or it forms pools

-- How absorption is learned at first?

---- Records of inputs, when water [was] spilled, the appearance of the surface changes, color gets darker (e.g. wool)

-- How not absorbing surface is discovered?

---- Records of inputs, when water spilled, appearance of the surface changes; pool forms
------  [pools are] changes in brightness, new edges in the visual data [which are] marking the end of the pools

-- How is [it] learnt that the edges of the pools are edges of water?
---- [By] Records of tactile inputs -- sliding a finger on the surface until it touches the edge, the finger gets wet

-- What is "wet"?

---- Tactile/Thermal/Proprioception/Temporal records of sensory input:

---- changing coordinates of the finger

---- finger was "dry"

---- when touching the edge:

------ decrease in temperature of the finger [is] detected

-- when [the "wet"] finger touches another finger, ... or other location, thermal sensor indicates decrease of other's temperature as well

-- when [the] finger slides on the surface when wet, it feels "smoother" than when "dry"

[What is "smoother"?]

-- "Smoother" is - Temporal (speed), proprioception + others

-- The same force applied yields to faster spatial speed [that maps to "lower friction"]

[What is "faster [higher] speed"?]

-- "Faster"[higher] speed is:

---- [When] The ratio of spatial differences between two series of two adjacent samples is in favor of the faster.

-- The friction is lower than before touching the edge of the pool.

[What is "friction"?]

-- Friction is:

-- Intensity of pressure of receptor, located in the finger.

Compared to the pressure recorded from other fingers, the finger which is being
 sliding measures higher pressure than the other fingers

...

So yes, it seems we can define it with NL [Natural Language], but eventually it all goes back down to parameters of the receptors -- which is how it got up first. Also we do understand NL definitions, because we *got* general intelligence.


An AGI baby doesn't need to have defined "wet" as "lower temperature" etc. -- it just touches, slides a finger etc. keep the record, and generalize on it.

Then it associates it with the word "wet" which "adults" w (....)

--- THE END ---

Thursday, January 4, 2018

The lack of operational hierarchical structure in the Deep Learning ANN neural networks


A survey paper on the issues of Deep Learning by Gray Marcus: https://arxiv.org/ftp/arxiv/papers/1801/1801.00631.pdf

The author has a valuable mix of expertise both in the ANN development and in linguistics, developmental psychology, cognitive psychology.

There are good points on the lack of real hierarchical structure in (current/regular) DL/ANN, accenting that they are actually "flat", even though there are "layers" which gives a confusing impression.

"To a linguist like Noam Chomsky, the troubles Jia and Liang documented would be
unsurprising. Fundamentally, most current deep-learning based language models
represent sentences as mere sequences of words, whereas Chomsky has long argued that
language has a hierarchical structure, in which larger structures are recursively
constructed out of smaller components"

G.Marcus p.9

See also Jeff Hawkins point since 2004 "On Intelligence"/Numenta, Dileep George's Vicarious, Boris Kazachenko's "Cognitive Algorithm"; the old Hierarchical Markov Models; probably many other researchers, also myself since my early 2000s writings where even I as a teenager have realized that human general intelligence faculty is a Hierarchical simulator and predictor of virtual universes.

The ANNs (without being put in another system/organization) lack operational structure.

Good survey and discussion of areas where DL fails and emphasis of the lack of transfer of learning, i.e. that the networks are not general intelligence and don't "understand" the concepts (the "overattribution" for DeepMind's Atari-player discovery of "tunnels", see p.9)



* However I don't like the pretentiousness in some parts of the article while discussing trivialities and proposing alternatives with 15+ years(?) delay with a pinch of academic glamour or so.

E.g. unsupervised learning (not that common boring classification of fixed images) and self-organization, incremental complexity/"self-improvement" - "Seed AI"; hierarchical operational structure, "symbol grounding" - emergence of generalizaions/"symbols", "abstract thought" from the sensory processing; different levels of abstraction - including "symbolic"; causality understanding (prediction, simulation of "virtual universes"); general/universal game playing; application of general educational tests/measures... (Since AGI is about that; the term "human level (general) (artificial) intelligence" was used in the past) etc. (Not just "pattern matching" of synthetic static tests.)

The above is what AI was always supposed to be about - AGI, - at least as some talented teenagers and others realized and shouted it to the world in the early 2000s and dismissed the poisoned term "AI". Everything was called "AI" back then - somewhat similar today, AI is ubiquitous, yet not general and lacking a personal wholeness.

These suggestions and conclusions would be informative for hard-core AI-er, though (programmers-mathematicians type), it seems the "general"-... part has still a way to go as a concept for the "mainstream" developers community with its "Narrow AI" attitudes**.

...

** Narrow AI - another forgotten term, which on second thought is still actual. Current DL is in fact "narrow AI", each network is trained for a specific class of problems ("classification") and as well explained in the paper can't generalize concepts and transfer the knowledge to different domains.

*** I "don't like" my own pretentiousness, too, but I consider it funny and ironic, rather than serious like in the paper. :P

**** Thanks to Preslav Nakov for sharing the link!

...

Compare the educational test proposals with one of the first articles in this blog, a decade ago:

Wednesday, November 14, 2007
Faults in Turing Test and Lovelace Test. Introduction of Educational Test.
https://artificial-mind.blogspot.bg/2007/11/faults-in-turing-test-and-lovelace-test.html

I didn't explicitly defined the exact kinds of tests, because they were already given in details in the appropriate textbooks about the set of the respective expected skills and knowledge for the respective age or educational level.

...

The article reminds me of the series of articles "What's wrong with Natural language processing?", starting from the year 2009:

https://artificial-mind.blogspot.bg/search?q=what%27s+wrong+with

(...)

Vicarious' demo video summarizing ANN reinforcement learning faults, and their Schema Networks: