Tuesday, December 7, 2010

Concatenate rows in Oracle

Recently, I had to concatenate and put in one line (comma separated) the results of a query in Oracle. After one version using replace, xmlagg and xmlelement which had several problems and some reading online I compiled the following code:

mycolumn || ', ')).extract('//text()').getClobVal(), 1),
', ')

from mytable

The extract/getClobVal trick came from "ORA-19011 Character string buffer too small when used with XMLAGG function":

The dbms_xmlgen.convert trick came from "HOWTO: Avoid Conversion of Escape Codes":

Enjoy :-)

Friday, December 3, 2010

Little batch file for StatSVN

StatSVN retrieves information from a Subversion repository and generates various tables and charts describing the project development. You can get the software this page:

Inside the archive (statsvn-0.7.0.zip) you have a readme.txt and a statsvn.jar . It would've been nice to be able to run StatSVN directly so I played a bit to create this bat file:

set home=%cd%
set /p project=Project folder:

set report=report

cd /d %project%

del svn.log

svn log --xml -v > svn.log

cd /d %home%

rd /s /q %report%

java -jar statsvn.jar -output-dir %report% %project%\svn.log

del %project%\svn.log


Just create the bat file in the folder where you extracted StatSVN, run it, paste your project's folder path and wait for the magic to happen. The report will be generated in a folder named report and the report's index.html should be opened in your browser.

Monday, November 1, 2010

Universe to science, and vice versa

We live in our Universe. We all study it and learn about it so that we can live in it.

Human civilization systematized all knowledge into sciences like mathematics (from Greek: learning, study, science), physics (from Greek: nature), biology, chemistry, etc. The system of sciences is helping us understand where we are, but it is also enabling us to influence the World.

The result? We have the Universe and our tiny, dense information structure called sciences. The Universe is "building" the sciences through us and gets influenced by the sciences through us. You can call the sciences, one dimension of our contribution as a society. You can also call the sciences a living organism that moves around and interacts with its environment. Here is an ugly sketch of the pyramid of influences:

All the dots are in the Universe. The black ones are the inanimate objects. The red ones are the people on Earth. The blue ones are the objects of science.

What is interesting to note here is that when people do something (that comes from science) to the World, it usually follows a formula. That action modifies the Universe in a corresponding fashion. It removes imperfections because they are difficult to catch in a formula. It removes noise. Here is an example: for a long time people lived in natural caves but then they started building houses and their walls are all straight. Another one: the Universe created our planet, but then Blizzard created WoW and the faces of the characters are all ribbed.

The last example is a topic of another discussion. The gaming industry will try to simulate the Universe with all its imperfections so that people could live in the simulation without bother. Apart from this particular case that is going for full simulation, the sciences are more into transforming the Universe in an easier to live place. Easy for transportation, easy for energy extraction, ....

Friday, October 29, 2010

Those little tiny spots on the canvas

During our lives, while learning about the world, we see that everything is composed of something else. Everything evolves into something else. Things change. And then, there are singularities.

Singularities are points of the world that the human cannot perceive into. There is The Big Bang that came from a single point. There are those quantum particles that space is "composed of" (maybe not a good example ^^). All those points hide an unimaginable amount of wow. Maybe those points are even more important than all the unknown worlds and undiscovered features of the world we are somewhat able to observe now.

What I thought about today is the "Technological Singularity". The advancement in speed, intelligence, etc. will ultimately bring humans to a new frontier where a new era will begin. This brings thoughts about the end of all things just like any other singularity out there. It's tempting.

Our society is a platform, a test-tube, for those scientific endeavors to space, to AGI, to all singularities. I'm not sure if space research is not overshadowed by developments in the field of AGI. In my opinion this is the right thing to do since breakthroughs in AGI will have an enormous effect on our lives and they will fuel new types of research in every other field.

Monday, September 27, 2010

Крачка назад във вечния танц

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

Светият Синод иска задължително обучение по религия в училище:

ДСБ подкрепи искането за задължително обучение по религия:

Негово Високопреосвещенство Ловчанският митрополит Гавраил:

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

Какво наблюдаваме в исторически план? Религията, подкрепяна от вярата на народа, е успяла да съхрани българския дух. Комунизмът унищожава религията, за да може хората да вярват само в него и да го подкрепят. Когато той си заминава, хората първоначално се опитват да вярват в държавата. Цялата тази смяна на правителства и партии разколебава хората. Хората не вярват в нищо. Правителството възкресява религията и църквата, за да може хората да вярват отново в нещо постоянно. Хубаво, но...

Едни хорица от The Science Network се събрали 2006, 2007 и 2008 г., за да помислят върху вярата на хората и да споделят опита си. Повече информация за всяка среща можете да намерите от следните връзки (мисля, че всички видео клипове са интересни, нещо като TED):

Beyond Belief: Science, Reason, Religion & Survival

Beyond Belief: Enlightenment 2.0

Beyond Belief: Candles in the Dark

Целта на първата среща е да се дефинира религията и вярата, да се погледне какво в науката се отнася пряко до тези феномени. Във втората среща, учените се опитват да намерят отговора на зададените въпроси, който ще представлява нещо като втора версия на Просвещението. В третата си среща, учените осъзнават колко дълбоко е вкоренена религията в САЩ и целта им този път е да намерят свещите на науката, които горят в тъмнината на религията.

Изгледал съм една голяма част от предоставените материали и сега оценявам, че изложенията са успели да ме убедят. Обикновено не реагирам на неща, които не ме засягат пряко, но в случая виждам как правителството поема по тъмния път. Хората май доста често вярват на сляпо. Много ми се иска, ако потегляме натам, то поне да признаем, че това е защото нямаме нужната образователна система. Това заместваме всъщност.

Явно няма да сме първите, които ще направят крачката към една по-истинска система. Мисля си обаче, че моето поколение, започнало в края на комунизма, би могло да сътвори нещо, ако имаше и едно добро образование. Като гледам властите няма да ни дадат време, пък и нали нямаме образованието :)

Friday, September 24, 2010

SMS за милиони

Днес получих следния SMS:
Mtel Vi predstavia: Unikalna oferta ot SMS za Milioni!
BEZPLATEN SMS s Vasheto EGN na nomer 9999 i moje da spechelite 20 000 leva oshte dnes! Ne e za izpuskane!
Стори ми се доста съмнителна цялата работа и се разтърсих. Намерих следните форуми и статии:

Оказва се, че става въпрос за играта SMS за милиони (smszamilioni.bg) организирана от "Ню геймс" ООД. Мобилните оператори са партньори и "подкрепители". Сайтът на играта дава доста ясна информация (частта Как да играя) и не заблуждава потребителите. Самите SMS-и и кратки рекламни съобщения естествено са малко на ръба.

Кратка справка в сайта на КЗЛД (Комисия за Защита на Личните Данни) показва, че всичко от страна на организатора е законно. Ето информацията:
Идент. номер: 269657

Брой на физическите лица*: над 100
Срок на съхранение на личните данни: 5 години

директен маркетинг;
информационни, компютърни и комуникационни технологии;

НОРМАТИВНО ОСНОВАНИЕ (Посочват се конкретни нормативни актове)*:



1. Физическа идентичност:
а) име
б) ЕГН
в) адрес
г) паспортни данни
е) телефон

физически лица, за които се отнасят данните;
на лица, ако е предвидено в нормативен акт;
на лица, обработващи личните данни.

от физическите лица, за които се отнасят


1. Инструкция на администратора, в която са отразени предприетите от него необходими технически или организационни мерки за защита на личните данни от случайно или незаконно унищожаване, или от случайна загуба, от неправомерен достъп, изменение или разпространение, както и от други незаконни форми на обработване: N /дата: 1/26.04.2010

2. Ниво на защита на личните данни съгласно Наредба No.1/07.02.2007г. по чл.23, ал.5 от ЗЗЛД*:

3. Предаване на данни по електронен път:
да (Специални мерки за защита чрез: криптиране)

Сега въпросът ми е, как мога да се отпиша от всякакви подобни "уникални оферти"?

Thursday, August 26, 2010

Universe, Mind, AGI, mumbo jumbo

The Universe. It's there.

The mind is in the Universe. It's part of the Universe. It's the Universe. We make the abstraction that what we do is decided by us. Just as the Earth can think of herself as orbiting the Sun. Earth is part of the Universe, so are we. All is natural.

AGI is in the Universe. It's part of the Universe. It's the Universe. We make the abstraction that if a computer does something that seems intelligent to us, it has a mind similar to ours.

What is happening actually? What is all this mumbo jumbo? Can I please have another view on the matter?

The U(niverse) can have virtual U(s) in it. The creators of those U(s) are the "thinkers". They make a dense representation of the U and act upon the real U "intelligently" according to their will. For example our knowledge is that dense representation. Our will is actually the next move that was given to us. But it was given by the same U. We cannot be intelligent and be part of the U. If we were, we would've been outside it. Observing it.

So here it is, my bit of knowledge, wondering why the initial Big Bang occurred. Is this self-debugging algorithm performed by the U? We actually don't have a grand purpose besides surviving, multiplying and spreading through the U. So for the moment the U likes us. I see three options. Die from something, Continue to be for infinity, Something else (transform, etc.) maybe outside our U. But if we're outside U, we should be in another U. Can we exist without U? We should know what existence is and how can it be without a U.

If we do it, then maybe it'll be that just our U has managed to escape from its death. If our U is born and will die out? If we manage to get out (and we're the U), then it's our U that will survive.

Voila! Meaning of life solved. Evolution at it's finest. We're the survival instinct of our U ^^

The only "living" thing is our Universe. We're just an organ :) Maybe the brain, for the moment...

Saturday, August 21, 2010

AGI on the WWW and graph visualization

If you have noticed, recently a lot of web sites have acquired Facebook's like button. At first I didn't see the broad implications of this tiny button if it wasn't for a f8 LIVE video I watched last week.

At this year's f8 LIVE, Mark Zuckerberg and Bret Taylor introduced the Open Graph protocol. For the total nubs, graphs are (according to Wikipedia's article on Graph theory) mathematical structures used to model pairwise relations between objects from a certain collection.

Now, I have read about graphs here and there. They're visible in the following fields:
  • My dictionaries' future projects all ended up in graph-like structures.
  • My recent reading of articles on AGI (Artificial General Intelligence) have also been related to graphs. If our gray matter is the synthesizing algorithm (see my article on the brain, in bulgarian) then it's cooperation with white matter (being a network layer) forms a good candidate for saying that our intelligence and consciousness are a decent implementation of a graph.
  • The NoSQL movement has made some graph databases sprout. I believe the slow development of technology and phat corporations like Oracle are amongst the reason why we haven't seen the boom of "not-relational"databases. Not until now!
  • The World Wide Web is also designed after this pattern. The Web 1.0 had pages. The Web 2.0 introduced applications. So now these applications want to communicate and process pages and data. Web 3.0 (Semantic Web) was always talked about but I didn't see it happening. RDF, OWL, these are mostly things of tech people and scientists. Now I think, practical technology has been developed and we're in need for that old idea of graphs.
What Facebook has done is basically open itself to the others. They have built and built and built, and now that there are nearly 500 million people hooked, they say "we're open for business". Or maybe they don't want to end up like MySpace :) For tech companies it's really important to be on the wave.

So here is Facebook's portfolio of new offerings:
  • Open Graph - Be part of the graph (FB will understand your web pages and build its graph)
  • Social Plugins - Personalised parts of FB on your website (human-readable FB graph)
  • Graph API - Program against FB's graph (machine-readable FB graph)
Now Facebook is all social, social, social, but what they're doing is just an implementation of something much more general. I guess they have grasped the people's needs and just like email and information on web pages was important for the Web 1.0, applications (social, e-commerce, etc.) for Web 2.0, now we can link all things and build the web of things/objects.

What is Facebook's idea? Build its graph (with the help of Open Graph or meta) and visualize it (Social Plugings, Graph API). They're the man-in-the-middle just like Google with its "graph" (with the help of Page Rank or links) and visualization (Search engine). I saw this Google relation somewhere but I don't remember well...

Of course the question of building a graph is important, but I'm a little more intrigued by the visualization. Do you need a lot of interfaces/applications/plugins to be able to display data? The information next to the Like button with just some icons and text. A representation of the data, let's say as a layer on Google Maps. I think we'll stick to this bunch of applications until we get the direct link to our brain :)

Now to the first part of this article's title. There is a lot of research done on AGI. What I see though, is that real world applications like Facebook and it's technology are coming from behind and bringing real intelligence to the Web. May it be that the evolution of the Web will bring us AGI and that it's the best place to develop AGI? I think I have to create my dictionary software on this new medium... graphs (neo4j?), Internet, people.

Thanks for reading, you two-three people :)

Wednesday, August 11, 2010


It turns out that I have already written down some ideas on the matter:
Развитието на Света (Еволюция)

What (most) sciences are all about

Biology, Sociology, Chemistry, History, Astrophysics, Physics...
Evolution, Galaxy formation and evolution, Human evolution, Technological evolution (1)...
Studying what is now, how it came to be and how it will change.

How do you call this phenomenon: Universal evolution or General evolution? I think simply Evolution will do. Please fix Wikipedia's article on evolution and all those references to evolution theory concerning only living beings.

Ervin László is said to be one of the men whose "goal was to explore whether it might be possible to use the chaos theory to identify a new general theory of evolution". He's the man behind the Akashic Field Theory which states that an informational field can explain why our universe appears to be fine-tuned as to form galaxies and conscious lifeforms; and why evolution is an informed, not random, process. I haven't read a lot about the theory and it might be a bogus interpretation but I think its going for the right direction.

Sciences are all related to our world, our universe. They describe its movement (evolution). Knowing all about the movement (evolution), you know how it came to be, how it is now and how it will change. Our universe is an evolution, a constant movement.

It's interesting to bring general intelligence to the table. How come we have the ability to reason about evolution? Recently I was introduced to different theories of intelligence and how our brain was attaining a level of understanding of what is around us. Just now I found an article saying that Brain System Behind General Intelligence (was) Discovered (two more articles on the matter in the Related Stories on the same site).

So the term Universe describes only a point, it's the Now. Evolution on the other hand is what we really need to understand. It's history of the universe, the universe of now and the future of the universe. How do we understand Evolution? By using intelligence, be it artificial general intelligence (AGI). What do we receive at the end? (Technological) Singularity.

1) a nice presentation for those who like visual

Wednesday, July 7, 2010

Consciousness, language and my dictionary software

Previously, I had written some articles in Bulgarian on the Hierarchical Temporal Memory (HTM) model introduced by Jeff Hawkins. I really liked the idea of Hawkins to mimic the function of the neocortex and its aptitude for cause inference so I wanted to present it in my native language.

Currently, I'm designing my next version of the dictionary software (AEnglish Dictionary) that I have developed some years ago. At first there might not be an obvious link between the two subjects but whenever I think on how to store and use a dictionary database in a good way, I always end up with questions on how do we, humans, do it. In general I'm inclining to try to mimic some function of the neocortex.

If I'm allowed to cite Wikipedia's article on the neocortex:
"It is involved in higher functions such as sensory perception, generation of motor commands, spatial reasoning, conscious thought and language."
When I first got introduced with HTM, I instantly found that it should be capable of doing "sensory perception", "generation of motor commands" and "spatial reasoning". However, when I considered it as a model for my computer dictionary, I didn't find it that attractive. I started looking at graph databases and ditched Hawkins' model without paying attention to why my intuition said that I can't use it for "conscious thought and language".

Recently I was thinking about my dictionary graphs and language, and neocortex, and when I got to HTM, I realized that I understood how the model is supposed to do the cause inference but what I didn't see it do is thought (language). That voice mumbling in your head was not in the model. HTM's tree showed me how to create an idea or object that exists in our minds but besides observing and reacting, we have another function in our neocortex that in my opinions is like a separate impulse. It's not a neocortex input or output impulse to the other parts of the brain. It's an inner impulse. It's maybe a long running impulse that's overseeing a large part of the inputs and outputs, and is also the source of some of those.
Side note: I'm talking of course about the normal case, so for a better understanding of the subject, it's always good to refer to pathologies. I'm not a specialist but I consider that schizophrenia and dissociative identity disorder are the right starting point to look for thought disorder cases.
To come to the matter, I would like to return to the observable part of consciousness, thought and language: speaking and writing.
Side note (sorry ^^): It's interesting to mention that speaking and writing follow their own history. In all humans' history, people developed some language and then began to write. In an individual's history, a human starts to speak and then learns to write. I guess once we form our view of the world, we start to form our consciousness by speaking (a language). Although writing is the same as speaking, we learn it afterwards. That subject is interesting and maybe I should create another post. The case of speech-impaired people should also be covered.
So in the case of my dictionary software, I'm interested in language and its ability to encode and decode the information stored in our neocortex. Our consciousness helps in observing our thoughts' use of language. Here is what my consciousness found out:

Somebody once said: "I think, therefore I am". If I hear the sound, my neocortex (modeled by an HTM) can create a language representation of the words "I think" in my mind. I can also learn to say those words myself or to write them on a sheet of paper. What if I don't want to use an HTM to create, store and output a language? Let's mimic the whole "language thing"... What model or interface can I use to have people encode and decode language that is better than dictionaries, thesauri, etc.? We live in the digital age so I hope I can come up with something :)

Maybe I should become more conscious (aware) on the relation between HTM's top nodes and the following phrase from Wikipedia:
A language is a system of signs (indices, icons, symbols) for encoding and decoding information.

Tuesday, July 6, 2010

Java has it wrong since 2002

If you ever made the mistake in Windows 7 to move your Desktop folder from C:\Users\%username% to D:\ (or some other folder) you might notice that Java applications start to flood your D drive (the root of Desktop) with configuration folders with names like .myapp. The explanation: when Java provides the user profile path to applications, it simply looks for the Desktop's path and strips the folder name.

Why would I want to move the folder in first place? Simply because I want to have my data on my D drive. At last Microsoft have provided the means to do it and now Sun/Oracle are in the way of being absolutely free to decide where you want to store your data.

What's really annoying is that the issue with Java exists since December 2002. Although there are 3-4 bugs related to this one and a lot of comments have been posted on the Internet, the bug is prioritized as 4 (low)!?

I'm not sure if voting counts but I have given my voice here:

Please vote if you're registered!

Wednesday, June 9, 2010


Не знам защо, но като ми кажат земеделие се сещам за Месопотамия. Наскоро разглеждах появата и развитието на земеделието в Европа и стигнах до годината 7 000 пр.н.е., Балканския полуостров.

Днес обаче прочетох за експедициите до Манхатан и как през 16 век индианците там отглеждали царевица. Голямо озадачение от моя страна! Тези индианци кога са започнали да се занимават със земеделие. Тикви, царевица, картофи... оказва се, че това са били също хилядолетни култури.

Потърсих в Уикипедия и попаднах на статията History of agriculture. Явно тази технология на хората е повсеместна и се е развила на цялата територия на Земята. При това става въпрос за 10 000 пр.н.е. Споменава се дори датиране от 20 000 пр.н.е., което според мен е обосновано, тъй като няма как тази техника да се е появила през 10 000 пр.н.е. и да се е разпространила бързо навсякъде.

Досега не съм мислил за земеделието като толкова глобален феномен. Явно то отдавна е част от културата на хората и им е помагало при всички им преселевания.

Tuesday, May 11, 2010

Problem with Undo and Bulgarian (Phonetic)

Проблем с Undo и Bulgarian (Phonetic)

Днес попаднах на решението на един много странен проблем. Пише си човек на кирилица в Word и опита ли се да използва комбинацията Ctrl+Z, вместо връщане на промените получава дублиране на промените. Много дразнещо е компютъра да ти прави напук.

Оказа се обаче, че компютъра не бил виновен. Днес реших, че ще разнищя въпроса. Google отново помогна като ме насочи към следния форум :

Проблемът е ясен. От въвеждането на Bulgarian (Phonetic) в Windows Vista, се получава неудобството, че при ползването на тази клавиатурна подредба, Ctrl+Z и Ctrl+Y са разменени.

Според мен това е очевиден бъг, тъй като Bulgarian (Phonetic Traditional) и Bulgarian (Typewriter) са си наред в моя Windows 7.

Надявам се да има лесен начин Microsoft да пуснат поправка и да го направят, все пак проблема е от повече от година.

Problem with Undo and Bulgarian (Phonetic)

Today I found the solution for a very strange problem. When you write in Cyrillic in Word and you try to use the combination Ctrl+Z, rather than undo of the changes you get duplication of the changes. It's very irritating that your computer is acting against you.

Turns out that the computer was not guilty. Today I thought I would drill down the problem. Google helped me once again by pointing to the following forum:

The problem is clear. The inconvenience occurs since the introduction of Bulgarian (Phonetic) in Windows Vista. When using this keyboard layout, Ctrl + Z and Ctrl + Y are switched.

I think this is an obvious bug, since Bulgarian (Phonetic Traditional) and Bulgarian (Typewriter) work fine on my Windows 7.

I hope that Microsoft has an easy way to launch a repair and to actually do it because the problem is more than a year old.

Tuesday, April 20, 2010

Нашият мозък

Здравейте, в тази статия ще попиша малко за неща около нашия мозък, които съм прочел и видял в Интернет. Може от време на време да включа и някое мое разсъждение.

Невронната мрежа

В нашия мозък има милиарди неврони. Всеки от тях може да се свързва с другите неврони при определени условия и да си предават сигнали. Идеята е проста. Идват импулси от тялото, тези импулси минават през мрежа от неврони, мрежата от неврони обикновено претърпява малка промяна като реакция на този стимул и може да изпрати обратно импулси на тялото. Способността на невронната мрежа да променя реакцията си спрямо импулсите идващи от тялото определя живота на организма и способността му да оцелява. Ако при ДНК, мутацията се извършва веднъж в живота на съществото, то в този случай има и придобити възможности.


Компютърът представлява една памет, един процесор и входно/изходни канали. Идеята е проста. Процесорът променя или чете паметта, когато получи съответен сигнал. Процесорът разполага с няколко прости инструкции, които може да извърши върху паметта. Обикновено списък от инструкции (програма) са записани на паметта и той ги изпълнява при команда като има възможност да докладва на изходния канал (екран).

Мозъкът срещу компютъра

Интересното при мозъка е, че той е памет и процесор в едно. Всяка връзка между невроните определя какво е "записано" в мозъка и всеки неврон обработва сигнали като един малък процесор. Може да се каже, че мозъка е една памет, на която всяка клетка е същевременно процесор и информация.


След като разбираме толкова много за невронните мрежи, защо не можем да направим нещо, което е "умно" поне колкото муха? Според мен е грешно да се мисли, че ние сме нещо по-различно от еволюция и че нашите творения не се влияят от законите на еволюцията. Именно затова трябва да мине известно време, за да може нашите машинки, базирани на идеите, които намираме в живите същества, да полетят и да започнат да правят неща, които никога не бихме могли да си представим в момента.


Докато някои хора се опитват да направят действаща изкуствена невронна мрежа, други създават роботи написани със стандартни алгоритми за програмиране използвани в компютърните науки. Има и хора, които търсят същината на интелекта и нови алгоритми, с които той може да бъде описан.

Мозъчната кора

Гънките на мозъка или сивото вещество (защото явно е сиво на цвят), това е най-външната част на двете полукълба на мозъка. Там се съдържа почти всичко за вас. Тя играе роля за паметта, вниманието, усещането на възприятията, мисълта, езика и съзнанието. Бялото вещество е окабеляването на тази кора и седи под нея. Ето картинка, за да видите как изглежда.

Ако мозъчната кора бъде разгърната, тя би представлявала една кърпа (60х60см например). При еволюцията, явно кората е растяла по-бързо от черепа ни и за да може да се побере по голяма площ разум, тя малко по малко се е нагънала.

В мозъчната кора се наблюдават неврони организирани в шест слоя, според различни характеристики. Сантяго Рамон и Кахал (нобелов лауреат) е направил следните 3 картини (оригинал) като най-отгоре е края на кората, а от ляво надясно: зрителна зона на възрастен обработена по метода на Нисл, двигателна зона на възрастен обработена по метода на Нисл и зона на 1.5 месечно бебе обработена по метода на Голги.

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

Какво търсим в мозъчната кора

За да се справяме добре във света, който ни заобикаля, ние трябва да го разбираме. Ние постигаме това като си изградим въображаем модел. Не, не говоря за този модел, който вие си мислите и който можете да осъзнаете лесно. Става въпрос за едно много ниско ниво на описание, където информацията от сетивата ви пристига в мозъчната кора и тя трябва да разбере какви са причините. Нагледно става следното:
Първо обаче трябва да се запитаме как тази част от мозъка ни определя каква причина отговаря на даден импулс. Ами това е първата задача на мозъчната кора, да открива причините, да открива шарки в нови и нови входни данни. Веднъж определила причината, втората задача на мозъчната кора е да се съсредоточи върху предсказването на това какво следва от разбраната причина. Щом като сте чули звука на двигателя, вие можете да си представите веднага колата, която ще се появи: вие предсказвате бъдещето! Следва третата задача, при която мозъчната кора казва на тялото да се отдръпне от пътя и вие сте спасен от сигурна гибел.

Дървовидна Времева Памет

Моделът за Дървовидна Времева Памет (ДВП) е създадена от Джеф Хокинс и Дилийп Джордж в тяхната фирма Нумента. ДВП се основава на теорията за работата на мозъчната кора, която е развита в книгата "On Intellidence" (2004) от Хокинс и съавторката Сандра Блейкслий.

Джеф Хокинс е силно заинтересован от мозъка и иска да създаде обща теория, която да обедини десетките години изследвания в областта на неврологията. Заедно с Дилийп Джордж, той успява да създаде опростен модел на функционирането на мозъчната кора и прокарва идеята за ново поколение интелигентни машини. В Интернет могат да се намерят десетки презентации, в които двамата инженери описват ДВП и виждането си за бъдещето ѝ. Според Хокинс, откритията в областта на науките свързани с мозъка ще променят компютърната наука и той кани всеки, на когото му е любопитно да прочете повече, да се запознае с материята и да помогне за прогреса.

ДВП имитира мозъчната кора

Да се върнем на представянето на мозъчната кора (сивото вещество) като кърпа. Площта на кърпата е разделена на региони. Регионите са свързани помежду си благодарение на снопове нервни влакна от бялото вещество. Това, което са наблюдавали учените е, че при общуването помежду си, регионите са образували йерархии, дървета.

Всеки регион изглежда еднакъв, структурата им е еднаква, но те спазват определена йерархия. Хокинс представя следната карикатура на едно дърво:

Ако приемем, че това са региони отговорни за зрението, то тези най-отдолу (ред 1) получават първи данните от очите. Ред 1 проектира данните към Ред 2, Ред 2 към Ред 3 и т.н. Малките стрелки показват, че информацията може да тече нагоре и надолу по пирамидата. Когато клетки от долен ред намерят стабилна пространствена шарка, те подават данни нагоре. Когато клетките от горен ред намерят (времева) последователност (предсказуемост), те подават данни надолу.

От схемата става ясно, че всяка част от Ред 1 е отговорна за малка част от зрението. Малка като време и други характеристики. Клетките в частите на Ред 2 са същите като тези в частите на Ред 1, но те отговарят за по мащабни характеристики на наблюдаваното и по-дълги периоди от време. Така малко по малко, достигайки до най-горното ниво, се намират все по-важни и по-важни причини.

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

Следващите стъпки

Изложението ми върху ДВП е изцяло основано на лекцията "Jeff Hawkins - Hierarchical Temporal Memory" от 18 март 2010 г. пред Факултета по Компютърни Науки към Университета на Британска Колумбия, Канада. Интересното в тази лекция е, че Хокинс не говори само какво са правили през последните три-четири години в Нумента или какво ще е грандиозното бъдеще след десетилетия. Той прави изложение на това, над което са работили есента на 2009 и може да се види как тази теория се подобрява и развива, как се откриват нови и интересни детайли.

Пред есента на 2009, учените от Нумента са се съсредоточили върху кутийките от дървовидната структура, онези жълти квадратчета, които обсъждахме. Всеки такъв възел има 3 компонента:
  • пространствен смесител: учи пространствени шарки;
  • памет за последователност: учи поредици;
  • времеви смесител: образува стабилни представяния на поредици, дори шарките да не съвпадат.
Изходът от времевия смесител на един възел е вход за пространствен смесител на горно ниво.

Отново стана късно, а стигнах до темата Разпределени представяния с неизменна разпръснатост (Fixed-sparsity Distributed Representations, FDR), красота :) Затова ще спра до тук. Надявам се да сте разбрали повечето неща до тук. И аз поразбрах това онова вече :)

Sunday, April 18, 2010

Развитието на Света (Еволюция)

Еволюция идва от латинската дума evolutio („разгръщане“, „разкриване“). В английския език се превежда като "unrolling and reading of a scroll, reading of a book". Думата е развила значението си на английски до развитие, развой.

Подготвям една статия за човешкия мозък и при като направих сравнение с компютрите стигнах до следното заключение. Развитието на процесорите и архитектурите е успоредно на развитието на нервната система при организмите. Развитието на едно ново устройство от нас е като развитието на едно ново същество или нова функция на някой организъм в природата.

Чрез нас природата продължава хода си и колкото и да се мислим, че сме се самоосъзнали, имаме още какво да постигнем. Само с напредък в науката ще достигнем до пълно самосъзнание, защото науката е точно това: познанието, което ни прави нещо повече от същество с първични инстинкти. Ум и знание!

Природата е създала ДНК, а после и нашата мозъчна кора. Това е теорията за еволюцията в биологията. Ако говорим за самото "начало", така са се създали и атомите, молекулите и планетите. Това е теорията за големия взрив (еволюцията на Вселената). Всяко едно изобретение на природата е началото на една нова история. Една нова организация на материята.

Или поне ние го разбираме като структура, която еволюира... се развива като свитък, или се разгръща като книга.

19.04.2010: Искам да направя една забележка за културата и в частност изкуството. Това също би трябвало да се разбира като един вид знание, което хората са развили. Как да използваме напълно нашите възможности и да правим неща, които обикновено ни се струват невъзможни. Музика, рисуване, танци, всяко едно от тези изкуства ни показва света какъвто обикновено не го виждаме, но какъвто може да бъде, ако решим.

Tuesday, April 13, 2010

Трябва и акъл!

1. Не става само с ядене, трябва и акъл!

Познатата ни фраза от рекламата на една банка е много добро начало за тази статия. Турската дума "акъл" е навлязла в разговорната реч и означава няколко неща: ум, разум, разсъдък, съвет. Хората сме уникални с това колко добре (според нас) си служим с нашия ум. Докато бездомните кучета и котки, които се навъртат около нас, главно използват главата си, за да си набавят достатъчно храна да преживяват, човешкия ум неспирно работи за някаква по-висша цел, с известни изключения разбира се. Каква е разликата според науката?

Главната причина за разлика в интелекта между нас и другите бозайници е, че ние просто имаме по-голям мозък. И както добре знаете от Мечо Пух: Колкото повече, толкова повече!

Тук е необходимо да се поясни, че най-важна за интелекта на един бозайник е външната част от мозъка, която се нарича мозъчна кора (познатите ни мозъчните гънки или сиво вещество). Тя също така е и най-новата, от еволюционна гледна точка, част на нашия мозъка и оттук идва името използвано в чуждестранната литературата, neocortex. Интересен факт е, че мозъчната кора представлява един тънък пласт от неврони организирани в 6 слоя, която заради малкия ни череп и бързото си еволюционно разрастване на ширина и дължина се е нагънала. Ако я разгънем, тя ще е нещо като кърпа за ръце.

2. Къде ти е акъла?

Някой може да се запита какво остава за умните врабчета, които не са бозайници и според биолозите не са привилегировани да имат мозъчна кора като нашата. Оказва се, че те са развили техен вид структура или "кора", която е достатъчно гъвкава, за да предоставя известно ниво на интелигентност у нашите пернати приятели. Учените все още не са се разбрали как да я наричат.

3. Ти нямаш акъл!

Мисля, че е удобен момент да спра за малко статията и да обърна внимание на всички, които до сега са намерили нещо нередно в нея.

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

Предполагам съществува и една група от хора, които са учудени от факта, че изглеждам прекалено уверен в обяснението за разума и съзнанието на човека, докато те имат друго виждане по въпроса. Тях ще ги помоля да изгледат едно кратко видео на Дан Денет (20 мин., с български субтитри) за съзнанието и магията. Колкото и да разбирам, че има още много да се направи в сферата на неврологията, тази наука е постигнала достатъчно, за да очертае повече факти, от което и да е друго вярване, познание и т.н. Целта на тази статия е да изложа разбраното от мен до сега за интелекта, такъв какъвто го наблюдаваме в нашата среда.

4. Дайте акъл!

Човешката култура и цивилизация е уникална в това колко много от наученото от едно поколение преминава в следващото и Интернет е поредна стъпка в нашата еволюция. Преди известно време попаднах на една теорията на Джеф Хокинс за мозъчната кора. След като изгледах няколко клипа (последният от 18 март 2010 във Ванкувър), в които той обясни надълго и нашироко интереса си към човешкия разум, реших, че е най-ефективно да се запозная обстойно с цялата информация, която той разпространява по толкова достъпен начин. Забелязах, че и други съграждани са черпили вода от същия кладенец, но особено впечатление ми направи Тодор Арнаудов и неговото участие във Феймлаб 2009. Впрочем аз го помня от едно време като езикотворец. Надявам се той да хвърли един поглед към тази статия, защото ще направя една забележка, която се отнася и за неговата работа.

5. Стига с този акъл, да говорим за ДВП!

Теорията на Джеф Хокинс за мозъчната кора (neocortex+) се нарича Hierarchical Temporal Memory (HTM). Тъй като хората са изписали достатъчно материал за нея на английски, а сигурно и на други езици, докато на български не съм срещал, за мен беше интересно да измисля превод. Тодор Арнаудов използва Йерархична темпорална памет, което има два проблема. Трибуквено съкращение с "Й" ще е малко странно и "темпорална" означава на български "слепоочна". Затова аз предлагам да говорим за Дървовидна Времева Памет (ДВП).

Основната цел зад ДВП е да се събере информацията от десетки години изследвания в областта на неврологията и да се създаде модел на действието на мозъчната кора. В сферата на информационните технологии досега сме запознати с невронните мрежи, които представляват опит за симулиране на действието на единичните неврони. Те, обаче не могат от само себе си да постигнат човешкото ниво на интелект. Според Джеф Хокинс, неговата теория пресъздава мисловната дейност на достатъчно високо ниво и разработения от него модел дава много добри резултати. Откритата от него фирма Нумента предлага инструменти за разработка и примерни програми, с които можете да видите ДВП в действие.

Ето какво представлява ДВП:

Какво виждаме?


Дали е дървовидна или пирамидална структура , съгласен съм, че може да се поспори. Важното е, че връзката с тялото е отдолу. Когато постъпи информацията от нашите сетива или когато искаме да направим нещо, един много широк слой се грижи да осигури комуникацията. На по-горно ниво нашата мозъчна кора разполага с по-малко на брой клетки, но ненужните детайли са спестени. В резултат малко по малко стигаме до най-горния слой, който един вид представлява една единствена идея. Два примера:
  • Когато очите ни видят някого, информацията малко по малко минава нагоре по дървото. Първо се обръща внимание на линиите, определя се лице, определят се характеристики на лицето и накрая се стига до един краен резултат: Мечо Пух.
  • Ние искаме да кажем "Мечо Пух". Идеята минава надолу по друго дърво, този път насочено към говорния апарат. Малко по малко информацията се уточнява и ние успяваме да нагласим езика, устните и устата в нужните позиции, за да извършим действието.


Оказва се, че предаването на информацията във времето е също важен момент. Единствено чрез анализиране на поток от сетивна информация във времето, целия модел може да бъде впрегнат в работа.


Дървовидната структура, която е пресъздадена в нашата мозъчна кора всъщност представлява памет. Памет за събитията и нещата, които познаваме, и нашата реакция спрямо тях.

6. Вместо заключение

Тъй като е малко късно, а темата е сложна и дълга, ще спра до тук. Очаквайте втора статия, която да е съдържа повече детайли за самата ДВП и защо според мен модела ще работи.

Благодаря за вниманието и надявам се да ви е било интересно.

20.04.2010 г.: Продължението можете да намерите в статията Нашият мозък.

Thursday, March 18, 2010

ГМО от Магаданския институт

Едни приятели ми пратиха следната статия за овцо-прасчовци:

Сетих се за една друга статия на Магаданския научен институт, в която надълго и нашироко се рекламираше големия напредък направен от учените им в областта на ГМО (генетично модифицираните организми). При това не говорим за растения, а животни.

Не мога да си спомня всичко в детайли, но общото ми впечатление беше, че прасето в Магадан е издигнато на пиедестал и е основен обект на изследванията там. Науката толкова е напреднала, че то вече е станало универсално животно. Ето и примерите:
  • Учените отдавна нямат проблем със студените вечери в Магадан, защото техните баби са им оплели пуловери от свинска вълна. Да не говорим, че те носят пуловерите и през летните си почивки на Азорските острови и това не е чудно като узнаете, че за подобния на Adidas ClimaCool ефект.
  • В обедното менюто в стола на института има такива специалитети като Мариновани свински крилца и Терин от гъши дроб от прасе с ябълков чипс.
  • Магаданци смятат да отворят първата в света свинеферма с годишно производство от 1 млн. тона краве мляко (равна на квотата на цяла България в ЕС).
Предвид изложените факти за научния напредък, организираните протести пред НС против ГМО в България ми се виждат пълен абсурд!

Sunday, February 21, 2010

HTM theory and Spaghetti code

HTM theory is a very interesting view of how people think and why they are so intelligent. Today I stumbled upon some Spaghetti code in a software project I'm working on. There was a method of more than a thousand lines.

As I was scrolling through this behemoth of thought, I started seeing some patterns. I immediately remembered HTM theory and how it modeled human perception. You receive some information through time (scroll the text) and you find patterns in it.

What can be done here? Refactoring. When you're at the top of the "see" pyramid you can already make high level processing of the whole method of thousand lines. You can "see" that there are some duplications of code. If you're not used to techniques of procedure/object oriented programming you might try to struggle to memorize all these repetitions. But someone who's familiar with refactorings such as extracting a method will quickly evaluate the gains of removing a lot of unnecessary duplications by passing an argument to a generalizing method. And thus you'll decide to change the code and will go down the "change" pyramid.

I wonder if you can train a HTM to do code refactoring :)

Thursday, February 11, 2010

Multimedia and RIA on the Web

Current state for multimedia and RIA is browser add-ons:
Flash (Flex), Silverlight, JavaFX

Future possibility is built-in support:
HTML5 (canvas tag) + JavaScript

IE9 supports Direct2D and if used for canvas tag you get built-in "flash-like" platform that can use the GPU ^.^