Aprenda sobre Inteligência Artificial de graça na Universidade de Harvard
Em 2020 o Felipe fez um vídeo sobre os melhores cursos de programação do mundo e ele teceu elogios ao CS50X, o curso de Introdução à Ciência da Computação da Universidade de Harvard, uma das melhores universidades do mundo. O CS50 é o maior curso do campus da universidade e também é o que recebe mais verbas, não é por acaso também que ele tem incríveis 4.2 milhões de alunos inscritos até os dias de hoje😱😱😱
Além desse curso, há também o curso de Introdução à Inteligência Artificial com Python, o CS50AI, que é indicado para quem conseguiu terminar o CS50X e quer ter noções do que é Inteligência Artificial (IA).
O CS50AI te dá um certificado emitido pela instituição CS50 gratuitamente, caso você consiga completar todos os projetos, e também há a possibilidade de pagar o certificado fornecido pela Edx ou adquirir a certificação profissional, que engloba outros cursos, também do Edx, mas sinceramente só o certificado do CS50 já é o suficiente.
O que é necessário antes de começar o curso?
- Saber matemática avançada ou estatística
- Ser foda em matemática
- Ser um gênio
- Estar confortável com Python para não precisar aprender duas coisas ao mesmo tempo
- Ser resiliente e sempre estar disposto a se esforçar para aprender
- Saber inglês, pois o curso é todo em inglês
Em 2021 consegui terminar o curso, após ter completado o CS50X e CS50W e vou dizer para vocês...foi INTENSO! 😰 😰
Seguindo a tradição do CS50, o curso é difícil para quem nunca teve contato com a área, mas com esforço e dedicação, dá para terminar. Em todos os cursos, eles têm como objetivo te deixar "confortável com o desconforto", ou seja, mesmo que você se sinta desamparado e confuso ao se deparar com um problema que não sabe resolver de imediato, a ideia é que está tudo bem e eventualmente vai conseguir chegar a uma solução, que é a representação do dia a dia de muitos programadores.
O que vou aprender no CS50AI?
O CS50AI é dividido em 7 tópicos, que são os grandes problemas ou áreas no campo da IA:
-
Search
Encontrar uma solução para um problema, como um programa de navegação que precisa encontrar a melhor rota da origem até o destino -
Knowledge
Como representar informação e tirar inferências a partir dele -
Uncertainty
Como lidar com eventos que possuem incerteza usando probabilidade -
Optimization
Encontrar não só a maneira correta de resolver um problema, mas maneiras melhores, ou a melhor maneira de todas, de resolver um problema -
Learning
Melhorar o desempenho tendo acesso a dados e experiência passada. Por exemplo, seu e-mail pode diferenciar spam a partir de experiências passadas -
Neural Networks
Uma estrutura inspirada no cérebro humano que pode executar tarefas com eficiência -
Language
Processar linguagem natural, que é produzida e compreendida por seres humanos
Todos os assuntos possuem uma longa aula bem densa, de cerca de 1h30, que deve ser assistida em partes e reassistida sempre que houver dúvidas. Depois há um quiz nada fácil sobre os assuntos abordados e por fim, um ou dois projetos, que devem ser codados pelo aluno e enviados via Git para o repositório do curso. Cada projeto é testado para verificarem se o código do aluno atende a todos os requisitos e então é aprovado ou rejeitado. É possível reenviar um projeto quantas vezes for necessário e sempre que o projeto é reprovado, é enviado também uma pequena observação do porquê dele ter sido recusado.
É incrível ver como eles conseguiram dar oportunidades para que todos os alunos, mesmo os que não estão pagando pelo certificado, consigam codar seus próprios projetos e ainda receberem feedbacks, mesmo que limitados. Percebi que muitos dos projetos são corrigidos por pessoas, provavelmente estudantes de Harvard, pois não é possível automatizar certas avaliações e a única maneira de checar o resultado final é ver um vídeo gravado pelo aluno, mostrando como a solução final se comporta. Imagino a quantidade de trabalho que isso deve dar e só uma instituição gigante como a Harvard consegue dar conta disso e ainda disponibilizar de graça para qualquer estudante disposto a aprender no mundo.
Como é fazer o curso?
Resumindo em uma palavra, o curso é DIFÍCIL. Ele é feito para a nata da nata dos estudantes americanos e por isso, é porradaria, sangue e suor do começo ao fim😭😭
Logo no segundo projeto, do jogo da velha, fiquei travado umas boas semanas, pois a minha versão era muito lenta e queria implementar a solução que fazia a IA ser mais eficiente e rápida nas jogadas. Não ajudou muito o fato de ter recebido um feedback confuso sobre o que estava errado no meu código, algo como "os padrões de movimentação da sua IA não tem consistência". Depois de tirar um sabático do curso, peguei uns dias para repensar no problema e consegui avançar😀
Fazendo uma analogia com a série Cavaleiros do Zodíaco, o restante dos cursos é como avançar pelas casas do Santuário. Um desafio mais cabuloso que o outro, mas com bastante pesquisa e estudo, é possível derrotar os chefões, mesmo que você chegue meio destruído ao final de cada casa. O que é mais exigido para concluir os projetos é tempo e dedicação para entender 100% do conteúdo passado no vídeo, além de ler a documentação da ferramenta e também um tempo para pesquisar sobre eventuais erros e bugs que aparecerem pelo caminho. E uma certa dose de lógica, pois muitos problemas requerem queimar um pouco a massa cinzenta.
O que aprendi ao chegar ao final do CS50AI?
O que foi muito gratificante foi de ter saído de uma visão superficial sobre o que é IA para um entendimento bem sólido do que é um problema de IA, que tipo de estratégias posso usar para resolver um problema e quais ferramentas estão disponíveis para me ajudar. Também de desmistificar alguns mitos, como de ter que saber muito de matemática ou estatística para criar uma solução que use IA, pois já existem ferramentas e frameworks que fazem quase o trabalho bruto, como redes neurais já treinadas para certas tarefas, ao desenvolvedor fica o desafio de ter uma visão macro, encontrando um problema a ser resolvido, pensando na melhor solução, conectando as partes e refinando o processo para ter o melhor resultado final.
Matemática e estatística são importantes para a área, especialmente para quem pesquisa na área e desenvolve ferramentas, mas é possível também usar IA como um framework e não se envolver com camadas mais baixas de abstração, como ocorre hoje quando alguém usa um framework web ou um módulo que facilita a vida do desenvolvedor: não é necessário entender o que está por trás para poder usar e se beneficiar.
O curso também te apresenta ferramentas que fazem parte do arsenal de quem quer trabalhar com IA:
- Scikit-learn: Ferramenta de Machine Learning para análise de dados
- TensorFlow: Usada para criar redes neurais capazes de classificar imagens
- NLTK: Ferramenta para analisar linguagem humana
Fiquei muito orgulhoso e entretido com diversos projetos, em especial três deles:
- Quando criei o jogador invencível de jogo da velha
- Quando criei um gerador que recebe o input de algumas palavras e retorna uma estrutura de palavras cruzadas
- Quando criei uma IA que consegue jogar campo minado
Reflexões finais sobre o CS50AI
Eu recomendo o curso a todos que possuem curiosidade sobre Inteligência Artificial, mas nunca tiveram a coragem/oportunidade/direcionamento para começar os estudos. É uma área com problemas difíceis, muitos ainda não resolvidos, então não espere uma jornada tranquila e sem estresse. Por outro lado, as soluções que usam IA fazem leigos e programadores ficarem de queixo caído. É incrível ver comportamentos que seres humanos julgam ser "inteligente" sendo feitos por programas e aparelhos eletrônicos👽👽
Somente uma pequena parte dos problemas e áreas foram desbravados, o que é uma oportunidade incrível para aqueles que possuem o conhecimento! Imagine o que poderia acontecer se todas as câmeras pudessem analisar as imagens como seres humanos ou se computadores pudesse entender o humor de uma pessoa a partir do que ela fala e escreve.
Boa jornada a todos!😃