Friday, January 13, 2012

Psicologia Cognitiva - Redes Neurais - 3

Nessa parte 3 vamos falar sobre Matrix (nao a fantastica trilogia cinematografica de ficcao cientifica rsrs) mais Matriz Matematica e falar tambem de uma breve introducao ao treinamento de redes neurais.

Para meus colegas de estudos da area de psicologia nao vou entrar em detalhes de calculo, basta saber que o estudo de Matriz e' um dos pilares matematicos relacionado a redes neurais. Elas sao usadas para transformar dados do mundo real de uma forma que possa ser usado nos calculos. A Entrada de dados na camada de INPUT sao sempre fracoes decimais, porem em computacao temos um limite de conversao desse tipo de dado para representacao binaria e vice-versa.

Para meus colegas programadores que quiserem tomar a pilula vermelha eu vou mostrar onde a toca do coelho vai dar ... e para eles as variaveis de INPUT/OUTPUT sao sempre do tipo "float" vamos usar as classes MatrixMath, BiPolarUtil, etc .. por tanto, rever calculos de Matriz de adicao, divisao por escala, multiplicacao, subtracao, transposicao, etc.. ajuda a entender os algoritmos.. sugiro uma lida rapida no link Matriz - Wikipedia antes de olharmos os codigos. Usarei a linguagem c# , porem quem souber java vai se sentir em casa pois c# e' a imitacao da microsoft da linguagem da Sun. O motivo e' simples, um dos pontos fortes da aplicacao das RNA e' reconhecimento de padrao, previsao, etc..vamos poder usar o codigo sem modificacoes em uma plataforma de trading de Forex rsrs.. ;-) quem sabe desenvolver RNA que estara' rodando em plataformas como essa da figura abaixo e faturar uns trocados rsrs...Bem, no final de 2011 mais de 70% de todas as transacoes financeiras foram do tipo "High-frequency trading" ou seja se resume em analisar o compotamento do mercado, definir uma estrategia e deixar por conta das RNA's.



Ou podemos fazer simulacoes para desenvolvimento de novas drogras na area farmaceutica quem sabe?? as aplicacoes vao onde nossos neuronios puderem imaginar.

Treinamento de Redes Neurais.

Uma rede neural simples tipica pode ser representada como na figura abaixo:


Basicamente treinar uma RNA significa deixar o padrao desejado na camada de OUTPUT mais perto possivel do IDEAL para isso temos temos que treinar a HIDDEN layer e/ou modelar adequadamente a camada de INPUT.

Meu proximo post sera' um video onde eu vou rever os assuntos dos 3 primeiros posts e explicar mais detalhadamente a parte de treinamento das RNA.

Ate' La
[s]
AA

Thursday, January 12, 2012

Psicologia Cognitiva - Redes Neurais - 2

No ultimo post levantamos a ideia que podemos representar simbolicamente o comportamento de um neuronio biologico em sua funcao basica de transmitir o estimulo para outro neuronio. Apartir de agora, ao inves de usar o termo "estimulo" usarei "informacao" para facilitar o entendimento. Pelo ponto de vista do processamento da informacao, um neuronio e' capaz apenas de uma funcao a funcao borleana. Quando um neuronio esta ligado a outro, temos uma rede neural. Analogicamente uma rede de computadores segue os mesmos fundamentos de uma rede neural biologica. Uma rede de computador  tem um tamanho minimo de host 2 ate' ∞ , (a internet atual tem um numero proximo do espaco de enderecamento IPv4 (32 bit) de 4.294.967.296 hosts ... por isso foi desenvolvido o IPv6 com espaco de 128 bits.)

Entao quais as possiveis funcoes que uma rede neural pode ter para transmitir, reter e processar informacao ? Vamos estudar algumas funcoes basicas.

Funcao "AND". A funcao AND (conjuncao aditiva e) tem basicamente o mesmo significado que no ingles ou no portugues. Significa que o resultado e' verdadeiro ser ambas entradas no INPUT passarem pelo threshold (limiar).

Logo teremos a seguinte representacao matematica:


ABA AND B
000
010
100
111
Para representar a funcao OR (ou) temos:
Representacao matematica:

ABA OR B
000
011
101
111


E por ultimo a funcao XOR (eXclusive OR) que e' considerada o "Hello World" do estudo redes neurais porque para representa-la temos que ter uma camada intermadiaria entre a camada de INPUT e a camada de OUTPUT chamada de camada HIDDEN. Abaixo a representacao grafica.
A representacao matematica de XOR

ABA XOR B
000
011
101
110
No proximo post falarei um pouco sobre matriz e treinamento de redes neurais.

Ate' la.
[s]
AA

Thursday, January 5, 2012

Psicologia Cognitiva - Redes Neurais - 1

Introducao as Redes Neurais..

O termo "rede neural" se refere ao estudo das redes neurais e podem a grosso modo serem divididas Redes Neurais Biologicas - RNB e Redes Neurais Artificiais - RNA. Dentro da psicologia cognitiva o estudo das RNB's esta ligado a neurociencia e neuropsicologia. O Estudo das RNA esta mais ligado a Psicologia Cognitiva e a Ciencia da Computacao.

Nesse post vou tentar abordar o estudo das Redes Neurais Artificiais - RNA's. Nao poderia citar o estudo das RNA's sem citar um dos nomes que mais influenciou no desenvolvimento da Ciencia da Computacao Moderna, o matematico, criptologista e cientista ingles Alan Turing.

Os trabalhos de Alan Turing versando questoes como: "se a humanidade teria a capacidade ou nao de desenvolver maquinas que pudessem imitar o comportamento/mente humana " influencia toda uma geracao de cientistas na decada de 50, como por exemplo, um dos precursores das RNA Frank Rosenblatt e o desenvolvimento dos "Perceptrons". Alan Turing refina o trabalho do psicologo Edward Thorndike sobre "connectionism" entre seus trabalhos os mais importantes estao a "maquina de Turing", "unorganized machine", etc.. Eu volto a citar Alan Turing no final do assunto para abrirmos discursao sobre o que seja "consciencia" pensamento reflexivo, etc...mais antes vamos entender as bases da RNA's.

O Neuronio.

O neuronio e' uma celula especialidada dos seres vivos que a possue como principal funcao processar, armazenar e transmitir informacao atraves de estimulos eletrico e quimicos. Quando um neuronio esta ligado a outro neuronio chamamos isso de Rede Neural.

Em uma Rede Neural Biologica um neuronio pode ser Excitatorio ou Inibitorio do ponto de vista de propagar ou nao um estimulo/sinal de neuronio para outro neuronio.


Quando o neuronio atinge uma determinada grau de estimulo excitatorio, ele propaga o estimulo. Se o estimulo nao atinge esse limilar o neuronio e' considerado inibitorio.

Nas RNA's a representacao esquematica desse fenomeno pode ser representada pela figura abaixo. (representacao basica de um Neuronio Artificial)

No esquema acima a seta superior com valor 1.5 representa o estimulo rebido pelos dendrito, se esse valor for  igual ou maior que o T do circulo (t=threshold value, valor limiar) entao o estimulo e' repassado para outro neuronio.No caso mais funcao basica possivel e' chamada de Borleana por dela so podemos extrair 2 valores: verdadeiro ou falso. Entao temos o valor de INPUT e como OUTPUT temos V ou F.


Nas redes neurais biologicas - RNB a transmissao do sinal e' feita de maneira ANALOGICA e um unico neurorio pode ter a capacidade de fazer simultaneas conexoes assim produzir maiores tipos de informacoes com funcao alem da funcao borleana, podemos ter a funcao "E" (AND) a funcao "OU" (OR) e a funcao XOR que e' o "hello world" das RNA's ...


No proximo post vou explicar como podemos representar essas funcoes e tambem os codigos em linguagem C para abrimos caminho para explorarmos topicos sobre a aplicacao de RNA e tambem sobre Inteligencia Artificial.


Ate' La.
[s]
AA

Origem do termo "Hacker"

Hacker, vem de "HACK" significa "Corte" no dicionario de ingles da Cambridge

[I or T + adverb or preposition] to cut into pieces in a rough and violent way, often without aiming exactly
Three villagers were hacked to death in a savage attack.
Don't just hack (away) at the bread - cut it properly!
The butcher hacked off a large chunk of meat.
figurative The article had been hacked about (= carelessly changed) so much it was scarcely recognizable.
Hack e' fazer um corte de maneira abrupita. Na informatica esse termo comecou a ser usado na epoca dos grandes mainframes POSIX tipo unix na decada de 70. Geralmente eram maquinas acessiveis apenas a programadores e engenheiros e o sistema de contas individuais nao estava ainda bem desenvolvido fazendo que todos pudessem ver o codigo escrito por outros programadoes. Era muitoc comum alguem escrever um codigo e outra pessoa melhorar o codigo tornando mais compacto ou mais eficiente fazendo um corte... aqui o exemplo de um hack ...


int i, sum = 0;
for (i = 1; i <= N; ++i) {
  sum += i;
}
printf("sum: %d\n", sum);


Entao o corte seria mais ou menos... comentar as linhas escritas (em C/C++ os comentarios sao /* */ ou // e escrever um codigo com a mesma funcionalidade mais de forma mais elegante ...entao ficaria assim:

/*int i, sum = 0;
for (i = 1; i <= N; ++i) {
  sum += i;
printf("sum: %d\n", sum); */

int sum = N * (1 + N) / 2
printf("sum: %d\n", sum);


O programa estava entao hackeado ... geralmente eram os melhores ou mais experientes programadores que faziam os "hacks" e com o tempo foram chamados de "hackers" que era motivo de orgulho e prestigio no meio dos programadores...

O termo Hack comecou a ficar famoso no Instituto de Tecnologia de Massachusetts, um dos centros academicos mais respeitados do mundo. Pois o corte tambem deveria ter um tom de brincadeira e tambem nao era somente usado no contexto da computacao. O termo foi expandido pra fora dos computadores e virou uma especie de trote-etico, politico ou nao ou apenas engracado e nada mais.

http://hacks.mit.edu/

The word hack at MIT usually refers to a clever, benign, and "ethical" prank or practical joke, which is both challenging for the perpetrators and amusing to the MIT community

Um dos mais famosos trotes foi quando eles colocaram um carro de policia no topo do predio principal.


Ou quando essa pobre cupula virou um R2D2


Dr. Who

Durante o jogo de Futebol hackers do MIT trocaram o LOGO de Harvard "VE-RI-TAS" por  "HU-GE-EGO" no painel do estadio da Universidade de Harvard.




A escavacao do MONOLITO (do filme 2001) na recepcao da universidade


O MIT sendo vendido pra DISNEY (um dos poucos hackers de computador) na epoca a pagina central foi hackeada e mostrava o MIT sendo vendido por 6.9 bilhoes



Enfim, no meu entender "HACKER" nao tem nada haver com prejudicar alguem. Espero que essa nova geracao de Hackers tenha um posicao politica correta, sejam espertos e eticos.


Wednesday, January 4, 2012

Ninjas e os espelhos...

Pergunta: Os ninjas podem ver seu proprio reflexo no espelho ??? Resposta: Os ninjas inventaram o espelho e por essa razao sao mestres do reflexo ...

Os ninjas sao tao rapidos que eles podem ver o reflexo mais o reflexo nao pode ve-los, os ninjas conseguem isso pegando emprestado a velocidade dos neutrinos ... ;-) Com essa velocidade podemos quebrar o espelho e os sete anos de azar pega em outra pessoa .... KKKK.. Not the EGO, AMIGO ...

Ser previsivel e' o fim da picada

Sempre racho o bico de tanto rir ...


Ask A Ninja : Question 51 : "Randomninja"