Inteligência Artificial hoje em dia é possível conversar com chatboot praticamente como se a gente tivesse conversando com uma pessoa de verdade mas será que isso já pode ser chamado de uma inteligência legítima as máquinas Estão realmente pensando quando conversam com a gente responder isso o primeiro passo entender como a inteligência artificial realmente funciona e esse é o assunto do vídeo de hoje Olá meu nome é Daniel Nunes você está no tem ciência e inteligência artificial é um assunto muito presente nos dias de hoje mas que também é cercado de muito mistério muita gente fala a
respeito até porque tá no Hype mas pouca gente entende realmente do que se trata e é por isso que eu proponho que a gente faça um acordo se você ficar até o final desse vídeo e acompanhar com calma vai sair daqui entendendo realmente o que é inteligência artificial sem mitos sem histeria e sem esoterismo Mas lógico que isso tem um preço esse vídeo terá algumas partes um pouco mais técnicas do que o normal mas não tem jeito para realmente entender a gente vai precisar disso O que o meu objetivo com esse vídeo é oferecer para
você uma boa compreensão do que realmente é inteligência artificial e a parte técnica é necessária porque fundamentalmente inteligência artificial é uma ideia matemática mas para nossa sorte é uma ideia relativamente simples é óbvio que a ideia de ter uma inteligência artificial parte da própria de ter uma inteligência natural e de acordo com a Biologia a unidade básica dos nossos processos cognitivos são os neurônios neurônios são células capazes de conduzir os impulsos nervosos que é o que está por trás da nossa capacidade de pensamento então neurônio recebe os impulsos de outros neurônios processa a informação recebida
encaminha novos impulsos para os outros neurônios aos quais ele está conectado a inteligência artificial componente básico também é chamado de neurônio mas o Seu funcionamento é muito mais simples do que na Biologia analogia é muito mais por conta da forma como os neurônios se conectam quem já se chama uma rede neural do que pela maneira individual de funcionamento dos neurônios para entender um neurônio de Inteligência Artificial a gente precisa apenas do conceito matemático de função Simples Assim isso é a chave de tudo porque a combinação dos neurônios uma rede neural é também uma função você
consegue entender todo o seu funcionamento dessa forma e é isso que a gente vai fazer a partir de agora tudo começa no componente básico um neurônio no caso da Inteligência Artificial os impulsos nervosos são substituídos por números Ou seja a informação percorre a rede neural na forma de números e o neurônio pode ser pensado como armazenador de números esse número armazenado é determinado pelos inputs recebidos pelo neurônio isso é análogo aos dentritos nos neurônios biológicos a maneira como esses combinam para determinar o valor do neurônio é determinado por uma função dos impotentes e no final
esse neurônio transmite a informação adiante para outros neurônios um papel que na Biologia é conhecido como sinapse e o processo se repete nos neurônios seguintes qualitativamente é assim que a coisa funciona os neurônios representam funções cujo input é o valor recebido dos demais neurônios que são conectados a ele esse número dentro do neurônio a gente chama de ativação sozinho neurônio não faz muita coisa a mais que acontece quando ele se organizam formando uma rede neural é aí que tá o coração da Inteligência Artificial o exemplo mais clássico de rede neural presente em praticamente todos os
livros sobre esse assunto é um reconhecimento de imagens mas especificamente o reconhecimento de dígitos manuscritos na descrição eu deixei para vocês o link de um livro online e gratuito sobre redes neurais quem quiser alcançar uma compreensão maior sobre esse assunto dá uma olhada lá depois a rede neural se organiza em camadas a primeira camada representa os neurônios de input da rede e a última camada representa os neurônios de altitude Ou seja a resposta da rede neural as camadas intermediárias são conhecida com camadas ocultas e a gente vai falar no motivo desse nome depois imagina que
a gente queira fazer uma rede neural para reconhecer números em Quadradinho de 28 por 28 pixels isso dá 784 pixels preenchidos em Tons de Cinza uma maneira de representar os inputs da rede é usar um neurônio para cada Pixel Então a primeira camada da rede neural terá 784 neurônios e o número armazenado em cada um deles é um número entre 0 e 1 que representa a tonalidade do Pixel correspondente zero representa o branco um é o preto e os valores intermediários representam os tons de cinza na camada de altitude Vamos trabalhar com 10 neurônios um
para cada dígito de 0 a 9 A ideia é que nessa camada cada neurônio também assuma valores entre o 01 e quanto mais próximo de um for o valor de um determinado neurônio a gente interpreta isso como o reconhecimento pela rede neural de que aquele é o dígito da imagem Esse reconhecimento é reforçado quando somente um dos neurônios está próximo e os demais Estão próximos de zero por exemplo A partir dessa imagem uma rede neural bem montada deveria dar um altiput iluminando mais neurônio do Set e deixando os demais neurônios quase apagados Isso significa que
ela reconheceu corretamente a imagem como sendo uma representação do número 7 por outro lado numa rede neural ainda muito rudimentar o resultado poderia ser bem mais confuso acendendo vários neurônios diferentes no output que significa que a rede neural não conseguiu reconhecer a imagem direito arquitetura de uma rede neural não tem grandes motivações teóricas ela é muito mais uma arte empírica baseada na experiências anteriores que deram certo então serão bons resultados Então nesse exemplo a gente pode usar duas camadas ocultas com digamos 15 neurônios em cada camada e para todas as camadas da rede cada neurônio
da camada anterior se conecta a todos os neurônios da camada seguinte a maneira como as conexões entre neurônios acontecem e a informação é transmitida Segue uma lógica linear lembra que os neurônios representam funções Isso quer dizer então que num primeiro momento essa função é linear o valor assumido por um neurônio é uma ponderação dos valores dos neurônios da camada anterior cada uma das conexões tem um peso diferente W1 W2 etc quanto maior for o valor desse w mais importante é aquela conexão então se o Zeni neurônios da camada anterior tinha uma ativações a um a
dois etc um neurônio atual vai receber o sinal W1 vezes A1 + W2 vezes a dois etc até wm vezes a n daria para formar uma rede neural somente com uma relação linear simples desse tipo só que ela não ia ser muito útil Então precisamos ajudar algumas coisas precisamos inserir algumas complicações para que a rede neural consiga assumir comportamentos mais complexos uma primeira modificação seria inserir um viés no sinal recebido isso é feito subtraindo por um certo valor B que representa esse viés o significado é simples o neurônio está agora comparando a diferença do sinal
recebido para o viés que seria como se fosse o sinal esperado mas mesmo assim a rede permanece linear e o problema das relações lineares é que elas têm dificuldade para descrever fenômenos complexos por exemplo se você quiser medir o tempo que uma bola em queda livre leva para chegar até o chão coletando dados a partir de diferentes alturas vai perceber que esse fenômeno não é linear ele não pode ser representado por uma reta a mesma limitação acontece com redes neurais lineares para mudar situações mais complexas é preciso inserir um termo de não linearidade na equação
neurônio isso é feito através da chamada função de ativação representada pela da grega Sigma que pode ser de vários tipos por exemplo a gente poderia usar uma sigmoide do tipo 1 sobre 1 mais é elevado a menos x ela é uma curva em formato de S por isso o nome diz sigmoide e transforma qualquer valor de entrada em um número entre 0 e 1 então o valor final de um neurônio é obtido a partir dos valores dos neurônios anteriores multiplicados pelos pesos das conexões descontado viés e transformado pela função de ativação Sigma que é uma
função Não linear capaz de fazer a rede neural modelar situações muito mais complexas do que antes esse nosso exemplo da queda livre seria como passar usar uma curva que se moldasse melhor aos dados do que apenas retas o resto da modelagem matemática da rede neural e apenas mudar a notação para lidar com vários neurônios ao mesmo tempo você já estudou um pouquinho de algema linear você vai fazer sentido para você a gente vai passar os a vetores para representar os valores de ativação de uma camada inteira de neurônios cada coordenada do vetor representa um neurônio
com n neurônios na camada anterior e ele na camada seguinte os n XL pesos envolvidos nas conexões são representados por uma matriz w de tamanho M por L os viés da camada seguinte são representados por um vetor B isso dá uma relação matemática compacta representando a relação entre as camadas e nessa notação Sigma representa também um vetor resultado da aplicação da função de ativação coordenada a coordenada se a notação não fez muito sentido para você não precisa entrar em Pânico O importante entender que a rede neural não é nada mais nada menos do que uma
função matemática a pergunta mais comum nessa hora é com os pesos e vieses são determinados pesos e vieses são os parâmetros da rede neural e é graças a eles que a mágica acontece então é bem evidente que o comportamento da rede neural é determinado por esses parâmetros então sabia escolher bem os parâmetros é fundamental e aqui que entra uma Shiny learning O aprendizado de máquina eu tenho que bater palmas para Quem escolheu esse nome porque ele faz a coisa parecer muito mais Espetacular Você já estudou cálculo aprendizado de máquina nada mais é do que resolver
um problema de minimização ou de maximização em alguns casos até aqui a nossa rede neural é uma função que recebe como input os dados da camada de entrada e dá como resultado um output na camada de saída essa função Depende de maneira fundamental dos parâmetros ou seja dos pesos e vieses das camadas diferentes da rede neura para o mesmo input parâmetros diferentes vão gerar altitudes diferentes Então como saber quais parâmetros escolher através de uma coisa chamada de treinamento da rede neural aprendizado de máquina é isso encontrar os valores adequados de pesos e vieses o que
isso é o que determina o comportamento da rede neural e o treinamento é o processo pelo qual ocorre esse aprendizado mas como é que você tem numa rede neural a forma mais simples é conhecida como treinamento supervisionado que é bem fácil de entender no modelo de rede neural de reconhecimento de imagens a gente começa com pares de inputs e altitudes ou seja várias imagens diferentes de dígitos feitas à mão juntamente com seu valor correto de altitude começamos com uma escolha qualquer de parâmetros e vemos que resultado a rede neural indica para os incuts que a
gente coloca mesmo que a gente tenha dado uma sorte muito grande os resultados da rede neural deverão ser muito ruim então a gente compara os valores obtidos com os valores esperados computando o erro encontrado foi representado por uma função de custo ou função de perda e que pode ser de vários tipos o formato bem simples é o do erro quadrático médio sobre os dados das amostras apesar da rede neural ser uma função dos inputs já que estamos lidando com inputs conhecidos podemos inverter a lógica e considerar que os parâmetros é que são as nossas variáveis
e estudar o comportamento da função de custo em função dos parâmetros lembra que mudar os parâmetros significa mudar rede neural Então o que estamos interessados em avaliar é o comportamento de diferentes redes neurais em relação aos dados de input e altitude dos exemplos e o interesse é selecionar os parâmetros que façam a rede teu comportamento mais próximo possível de acertar os altitudes ou seja o objetivo é exatamente como um problema bastante comum de um curso de cálculo minimizar a função de custo do ponto de vista matemático é isso que significa aprendizado de máquina Mas é
só isso porque tanta dificuldade com inteligência artificial Porque apesar de ser conceitualmente simples as dificuldades está no volume de dados nessa nossa rede neural de processamento de imagens com uma camada de imposto com 784 neurônios duas camadas ocultas de 15 neurônios de cada e uma camada de altitude com 10 existem mais de 12 mil parâmetros envolvidos ou seja essa minimização está acontecendo em um espaço de dimensão maior do que 12 mil isso porque esse é um exemplo bem simples no caso por exemplo do chá de GPT na versão 3.5 a quantidade de parâmetros é de
175 bilhões então o grande problema que dificulta o avanço da Inteligência Artificial é justamente lidar com esse problema da minimização da função de custo quando há uma quantidade imensa de parâmetros envolvidos é por isso que os avanços na área de Inteligência Artificial são acompanhados de avanços nas técnicas usadas para encontrar esses valores mínimos em dimensão Alta ou usando aquelas palavras que merecem Palmas por de criatividade avanços em aprendizado de máquina uma das técnicas mais usadas é conhecida como método Gradiente para quem já estudou cálculo de várias variáveis o gradiente é o vetor das derivadas de
uma função e ele tem uma propriedade importante a direção do Gradiente é a direção em que a função cresce mais rápido para uma função em duas variáveis que pode ser visualizada como uma superfície no espaço tridimensional a direção Gradiente indica a direção mais íngreme da função naquele ponto então pensando no gradiente da função de custo quando a ideia encontrar mínimos da função começamos num ponto Qualquer e fazemos pequenos incrementos na direção do Gradiente mas em sentido contrário que vai corresponder Ao caminho de maior decréscimo da função a cada passo teremos novos parâmetros e uma nova
rede neural que resultará no erro menor do que antes medido pela função de custo Então repetimos esse processo várias e várias vezes porque nos levará cada vez mais próximos de um ponto de mínimo legal para função de custo se jogarmos água na superfície esse seriam os lugares onde as poças ficariam formadas Essa é a ideia Geral do método do Gradiente que até hoje juntamente com outras técnicas é amplamente utilizada em aprendizado de máquina para treinar redes neurais ou seja para encontrar parâmetros da rede que minimiza uma função de custo nos casos com treinamento do tipo
supervisionado o aprendizado de máquina se parece muito com a ideia de intercolação no nosso exemplo da queda livre encontrar a rede neural seria como encontrar uma curva que melhor acomodasse os dados pilotados a partir da experiência no caso do aprendizado supervisionado os exemplos de inputia altitude são como os pontos marcados no gráfico através de um método como da descida de Gradiente buscamos descobrir uma configuração para nossa rede neural porque se a molde bem aos dados que é o equivalente a buscar uma curva que descreva bem os dados empíricos ainda assim o problema não é simples
de resolver na prática por conta do volume de dados envolvidos demanda mais técnicas para ser levada adiante apesar de Matemática Simples computacionalmente ela é desafiadora existem outras formas de treinar redes neurais além do aprendizado supervisionado como é o caso do aprendizado por reforço ao invés de uma função de custo agora existe uma função de recompensa e punição que serve para avaliar os altitudes da rede neural o problema passaria a ser maximizar a função de recompensa a partir da Escolha dos parâmetros a vantagem desse método é que você não precisa mais selecionar parte de input e
output para treinamento a desvantagem é que a rede neural vai se especializar em maximizar a função de recompensa e talvez a maneira que ela consiga fazer isso seja através de comportamento completamente indesejado então é preciso ter muito cuidado com a elaboração da função de recompensa Porque é ela quem vai determinar o comportamento final da rede neural o mais curioso da Inteligência Artificial são chamadas camadas ocultas numa arquitetura rede neural as camadas entram em boot Foot recebem esse nome de camadas ocultas isso porque o aprendizado de máquina alimentos parâmetros dessas camadas e dão elas de funcionalidades
específicas só que essas funcionalidades são normalmente incompreensíveis para nós elas são resultados de como a rede neural resolveu o problema da minimização da função de custo no caso de um aprendizado supervisionado ou seja como ela aprendeu a realizar a tarefa na qual foi treinada se você tivesse que identificar que número é representado nessa manuscrito ele olhar para os desenhos buscando alguns padrões conhecidos por exemplo você perceberia que existem duas camadas que se parecem com círculos isso é suficiente para concluir que elas formam muito com a rede General não é assim as etapas intermediárias de avaliação
feitas pela rede neural e corresponde ao que está acontecendo nas camadas ocultas podem não fazer nenhum sentido para nós elas são a maneira como a rede neural conseguiu se configurar para resolver satisfatoriamente o problema de reconhecimento de imagens Mas isso pode ser totalmente diferente da maneira como um ser humano faria se reconhecimento é por isso que ao contrário do que se acreditava no começo dos estudos de Inteligência Artificial não existe nenhuma garantia de que avanço na área de e.a levem avanço na compreensão do funcionamento do cérebro humano existe um último resultado em redes neurais que
eu queria que vocês conhecessem como a gente viu no começo desse vídeo redes neurais são essencialmente funções É verdade que elas podem ser funções em transpassos dimensão alta mas não deixam de ser funções e aqui entra um resultado extremamente importante conhecido como teorema da aproximação universal ele diz que qualquer função contínua ou qualquer função aproximável por uma função contínua pode ser arbitrariamente aproximada por uma rede neural isso é muito profundo e muito importante porque significa que desconsiderando limitações computacionais é Teoricamente possível modelar praticamente qualquer coisa usando redes neurais se a gente acredita que a capacidade
cognitiva humana é representado por uma função logicamente que uma função muito muito complicada que pode envolver até uma parte probabilística mas ainda assim uma função então a singularidade é possível Ou seja é possível levar a inteligência artificial ao mesmo nível da Inteligência humana que é de singularidade ou até mesmo ultrapassar a inteligência humana chegando numa super inteligência isso é muito legal mas também é muito perturbador e tem muitas outras perguntas relacionadas a isso por exemplo Será que isso significa que em algum momento uma rede neural pode representar uma consciência ou seja Será que a rede
neural um dia pode Despertar a quem diga que essa será a maior invenção da humanidade mas também será a última Muito obrigado não se esqueça de deixar o like se inscrever e até o próximo vídeo