Páginas

Showing posts with label aula. Show all posts
Showing posts with label aula. Show all posts

Saturday, October 16, 2010

É possível aprender com os dados?

Tudo começou com a leitura de um post num blog, sobre Online Learning [1], sugestão de um amigo do estágio.
Nos comentários tinha um link para um site com vídeo aulas [2].
Chegando lá, já no primeiro link no topo da página [3] me interessei e comecei a assistir uma aula de uma hora sobre aprendizado semi-supervisionado.

Existem métodos de inferir/formular modelos a partir de um conjunto de dados no qual temos como entrada pares de entrada+saída. São os chamados métodos supervisionados.
Por exemplo, podemos ter como entrada 1000 emails e saber se cada um deles é um spam ou não.

Seria interessante agora inferir coisas a partir dos dados não classificados, classificação não-supervisionada.
Este é o caso quando queremos por exemplo encontrar grupos através de uma função de similaridade.

O aprendizado semi-supervisionado é quando temos alguns dados classificados, e outros não classificados. Ou seja, temos 1000 emails que sabemos distinguir entre spam e não-spam, mais digamos 9000 emails que não sabemos a classificação.

Esses 9000 emails podem ajudar substancialmente a desenvolver um modelo que dado um novo email ele seja classificado corretamente como spam ou não-spam.
Na aula são mostradas duas categorias de problemas, e que tipo de conjunto de dados funcionam bem usando as técnicas apresentadas.
  • Expectation Maximization (EM) [4]
  • Co-training [5]
Essas técnicas me deram uma idéia de como posso classificar tweets como positivos ou negativos a respeito de algum candidato nas eleições 2010 [6], bastando ter algumas amostras de mensagens classificadas positivamente e outras classificadas negativamente.

Fica a sugestão a todos para visitar o videolectures.net e passar algumas horas assistindo a aulas muito interessantes.


[1] http://mark.reid.name/sap/online-learning-in-clojure.html
[2] http://videolectures.net
[3] http://videolectures.net/mlas06_mitchell_sla/
[4] http://en.wikipedia.org/wiki/Expectation-maximization_algorithm
[5] http://en.wikipedia.org/wiki/Co-training
[6] http://www.eleitorando.com.br

Sunday, August 17, 2008

A invenção do computador

Esse foi o tema do texto escrito por Pierre Lévy que li nesse fim de semana.
A história é razoavelmente longa, mas certamente poderia ser uma coletânea de livros se assim desejado.

O computador nasceu no período de guerra, e, como as bombas nucleares, serviu para o mal, para aterrorizar e destruir. Todavia, o conhecimento neste momento adquirido é o que garante o bem-estar, o retardo indefinido do próximo conflito mundial, e que multiplica nossos poderes e inteligência.

O desenvolvimento de máquinas que automatizam e aceleram cálculos precede a Segunda Guerra Mundial, logo esta não pode ser dada como tese única para o surgimento dos computadores. Estes não prosperaram nem no Japão nem na Alemanha, pois foram destruídos pela guerra. Foi ela que financiou projetos nos EUA, e por isso, antes de construir equipamentos de seus interesses, cientistas tiveram que produzir encomendas do governo orientadas a aplicações militares.

Apesar de a pesquisa militar ter contribuído para o desenvolvimento das primeiras calculadoras eletrônicas, a bomba atômica de urânio foi construída sem o auxílio de qualquer computador. Essa época favorável a invenções permitiu que teorias e objetos técnicos fossem repensados e então ganhassem novos fins não-militares.

A criação dos computadores não é creditada a ninguém em especial, mas sim a alguns homens que contribuíram para tal. Destaca-se Charles Babbage, Alan Turing e John von Neumann, todos eles matemáticos. Babbage construiu máquinas de calcular, inclusive introduzindo funções de memória, objetivando construir tabelas náuticas, astronômicas e matemáticas exatas, pois as que existiam na época eram tomadas de erros.

Turing foi mais um teórico, e não deu contribuições diretas para os computadores digitais, nem para a construção de autômatos concretos. Já von Neumann redigiu o primeiro documento onde se descrevem a disposição interna e os princípios de funcionamento dos computadores modernos.

A história dos computadores também pode ser descrita pela natureza dos materiais empregados em cada época. Primeiro as máquinas mecânicas, depois eletromecânicas, eletrônicas e, por fim, os computadores. A evolução na eletrônica se deu com o tubo de vácuo, originando o transistor e os circuitos impressos. Isso sem contar o desenvolvimento das áreas de linguagem de programação, software, dispositivos de comunicação e implicações sociais.

A invenção técnica do que é a informática deveu-se a uma sucessão de fatos desordenados e reutilizações, contrastando com as idéias de algoritmo ou de mecanismo predeterminado a que está associada.

A história da informática é uma espécie de meta-rede irregular na qual cada nó define e interpreta à sua maneira, em função dos seus fins, a topologia da mesma. Cada um reinterpreta o passado e projeta um futuro segundo suas vontades. Assim, nenhum precursor ou fundador tem pertinência relevante.

Comentários pessoais:

Pierre Lévy é um Tunisiano de 52 anos, residente no Canadá. Ele é conhecido por seus estudos sobre inteligência coletiva e sociedades baseadas no conhecimento. Lévy é um nome importante na “cibercultura”.

Notei que a invenção do computador não pode ser analisada a partir de uma visão simplista. Ela se deve a uma complexa mistura de fatos, estudos e invenções, englobando o aspecto social, técnico, científico e militar.

Lévy mostra como a guerra influenciou a tecnologia, e vice-versa, e isso me deixa num estado de dúvida. Será que para construirmos, evoluirmos, precisamos de tanto terror, tanta morte, tanta destruição? Não poderiam razões mais benéficas provocar inovações em grande escala? Parece que o homem precisa sofrer para, então, usar sua inteligência para o bem.

Há uma tabela comparativa que mostra o quanto a velocidade de processamento evoluiu com o surgimentos de novas máquinas. Enquanto um homem levaria mais de dois dias para calcular a trajetória de uma bala, um computador mecânico levaria apenas duas horas. Não obstante, o ENIAC levaria apenas três segundos, um valor impensável com a tecnologia do início do século XX.

Quanto um nome para destacar como o criador do computador, concordo com o autor no argumento de que não é possível identificar alguém que tenha idealizado e construído a máquina que usamos hoje, com propósitos bem definidos e sem utilizar-se de outros equipamentos eletrônicos previamente construídos. O computador claramente não é uma máquina que foi construída “from scratch”.

Sunday, August 10, 2008

Cibernética

Neste domingo li um texto sobre cibernética, o primeiro de uma série de textos indicados para a matéria de Computadores e Sociedade. O texto é de Norbert Wiener, e foi publicado em Novembro de 1948 na Scientific America.
Segue um resumo e alguns comentários pessoais:

O campo da cibernética foi criado na década de 1940, e implica no estudo de elementos comuns no funcionamento de máquinas e seres humanos, ou seres vivos em geral, assim como a comunicação entre os mesmos.

O conceito se baseia na comprovada superposição entre complexas atividades cerebrais e simples operações de uma máquina de calcular. As capacidades implementadas nas máquinas de calcular mais avançadas, como memória, associação e escolha, mostram que o cérebro humano se comporta de maneira muito similar à das máquinas.

O objetivo da cibernética é prover um mecanismo de auto-regulação (feedback) bem representado. O termo origina-se para palavra grega para ‘piloto’, e que no latim deu origem a ‘governador’. Um exemplo do funcionamento do corpo humano, e que se assemelha ao trabalho de uma máquina, é o ato de pegar um lápis. Para tal tarefa, o sistema nervoso central envia sinais para os músculos e, em seguida, percepções cinestéticas são captadas pelos órgãos dos sentidos, realimentando o sistema nervoso num processo circular.

Para desenvolver a teoria, foi preciso uma equipe de especialistas, com amplo domínio não só na sua área específica, mas também em todas as outras relacionadas ao estudo. Norbert Wiener, matemático, trabalhou com o Dr. Rosenblueth, fisiologista, ambos convictos de que as áreas mais produtivas para o crescimento das ciências eram desprezadas como terra de ninguém entre os vários campos definidos das ciências.

A colaboração da dupla começou com um projeto da época de guerra, um aparelho de controle de fogo para artilharia antiaérea, capaz de acompanhar o percurso de um avião e predizer sua posição futura, onde, claramente, atua o princípio da auto-regulação, dado que o funcionamento do aparelho depende de operadores humanos da arma e do avião.

Posteriormente, outros cientistas passaram a participar do grupo, como o matemático John von Neumann, e outras pessoas dos campos de psicologia, sociologia, engenharia, anatomia, neurofisiologia, física entre outras.

Ainda em 1948, acreditava-se que o momento evolutivo corrente era o da comunicação e do controle. Diferente da engenharia de força, a engenharia da comunicação está preocupada com a reprodução exata de um sinal. Até o século XIX, a engenharia do corpo era vista como um ramo natural da engenharia da força, entretanto, o que ocorre, na verdade, é que o corpo humano assemelha-se muito mais ao funcionamento de uma válvula que a um sistema mecânico baseado em energia. Ou seja, o estudo de autômatos, seja de metal ou de carne, é um ramo da engenharia de comunicações.

Da mesma forma que a redundância colabora para garantir o funcionamento correto de sistemas valvulados, a transmissão de sinais através de neurônios é confiada simultaneamente a mais de um deles. Patologias do cérebro não são unicamente causadas por lesões físicas, já que os problemas funcionais transcendem o físico e passam para o campo da comunicação, ou falha desta, entre neurônios.

A distinção entre perturbações orgânicas e perturbações funcionais não está expressa no cérebro, e sim no conjunto de instruções processadas e no conteúdo armazenado, assim como em uma máquina de calcular. O armazenamento se dá na forma de memória, desaparecendo quando o cérebro morre. Logo, as perturbações mentais tratam-se de doenças da memória, da informação de circulação conservada pelo cérebro em estado ativo, e sob a forma de permeabilidade de sinapses.

Para tratar máquinas que apresentam defeitos, existem vários métodos que tem em comum a tentativa de eliminar os dados já armazenados e reiniciar o funcionamento do sistema. Entretanto, a única forma conhecida de limpar o cérebro das impressões passadas é a morte. Entre os processos não-fatais, o que mais se aproxima da limpeza é o sono, que não é capaz de retirar lembranças profundas.

Aparentemente, não existe uma forma puramente farmacêutica ou cirúrgica para intervir seletivamente na memória permanente. É nesse caso que são empregadas a psicanálise e outras medidas psicoterapêuticas.

Minhas percepções:

Resolvi entender melhor quem era Wiener e descobri que ele foi um teórico e matemático americano, que contribuiu para os campos de engenharia e comunicação eletrônica, e sistemas de controle. De fato, Wiener é também fundador da cibernética. Interessante notar que aos 14 anos ele obteve bacharel em matemática e iniciou seus estudos na área de zoologia, sendo que um ano depois pediu transferência para estudar filosofia. Aos 18 anos Wiener já tinha seu título de PhD. Certamente sua formação o forneceu uma boa base para falar com propriedade sobre interações entre seres vivos e máquinas.

Por envolver várias áreas do conhecimento, o estudo me faz lembrar o trabalho atualmente desenvolvido pela profa. Carla Verônica, no campo da neuroinformática. Para realizar seu trabalho de pesquisa, ela conta com uma equipe multidisciplinar, envolvendo programadores e outros informatas, lingüistas, psicólogos, físicos, etc. Concordo que para desbravar áreas até então pouco desenvolvidas é necessário a colaboração de especialistas que possuam visão holística do tema.

O texto também me remete ao capítulo "Memory and Metamemory: Considerations in the Training of Human Beings", por Robert Bjork, do livro "Metacognition: Knowing about knowing" que li recentemente, e trata do funcionamento da memória humana, em algumas ocasiões fazendo comparações com máquinas.

O tema é bastante relevante ao curso de Engenharia de Computação e Informação no que tange à informação. Esta pouco significa dada de forma estática e isolada, sendo preciso comunicar para dar algum sentido a mesma. Não devemos nos limitar a armazenar dados de forma eficiente em um computador, precisamos entender como o conhecimento que está a nossa volta influencia o funcionamento de nossas mentes, para aperfeiçoar os mecanismos de interação homem-máquina e homem-homem.

Tuesday, August 5, 2008

Em breve...

Hoje comecei a sentir o peso da volta as aulas.
Vou cursar a matéria "Computador e Sociedade", e terei de produzir alguns textos. Creio que eles serão postados com o passar do tempo.

O dia foi corrido, estou juntando material sobre como instalar o SVN + Apache2, em breve vem os detalhes!