{"id":1124,"date":"2021-02-17T20:39:16","date_gmt":"2021-02-17T20:39:16","guid":{"rendered":"https:\/\/nilg.ai\/?p=1124"},"modified":"2025-03-17T12:48:03","modified_gmt":"2025-03-17T12:48:03","slug":"incorporar-conhecimento-de-dominio","status":"publish","type":"post","link":"https:\/\/nilg.ai\/pt\/202102\/embedding-domain-knowledge\/","title":{"rendered":"Incorporar Conhecimento de Dom\u00ednio"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-1126\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/pexels-stanislav-kondratiev-2908984-1024x683.jpg\" alt=\"\" width=\"1024\" height=\"683\" \/><\/p>\n<p>Nos bons velhos tempos, trabalhar como engenheiro de aprendizagem autom\u00e1tica significava dedicar 95% do tempo \u00e0 engenharia de caracter\u00edsticas e 5% ao treino de modelos com as caracter\u00edsticas extra\u00eddas. Este era um processo que exigia muito trabalho manual e era demorado, o que normalmente levava a provas de conceito pouco flex\u00edveis, que dificilmente podiam ser adaptadas a novos contextos. Felizmente, o Aprendizagem Profunda veio em socorro e, agora, utilizando grandes quantidades de dados e um pr\u00e9-processamento simples dos mesmos, \u00e9 poss\u00edvel treinar algoritmos que produzem previs\u00f5es melhores do que as abordagens cl\u00e1ssicas.<\/p>\n<p>Para entender melhor como isto foi um divisor de \u00e1guas, apresentamos o seguinte exemplo. Imagine que tem de criar um modelo para identificar a esp\u00e9cie de planta com base numa fotografia de uma folha. Usando a metodologia antiga, as tarefas de vis\u00e3o computacional que precisa de aplicar para extrair caracter\u00edsticas relevantes parecem uma lista intermin\u00e1vel: remo\u00e7\u00e3o de fundo, aplica\u00e7\u00e3o de filtros para dete\u00e7\u00e3o de contornos, aplica\u00e7\u00e3o de filtros para caracter\u00edsticas texturais, c\u00e1lculo de distribui\u00e7\u00f5es de cor, c\u00e1lculo da forma do recorte da folha, dete\u00e7\u00e3o, m\u00e1scara e extra\u00e7\u00e3o de caracter\u00edsticas das nervuras da folha, etc. Ap\u00f3s a aplica\u00e7\u00e3o do pr\u00e9-processamento, estas caracter\u00edsticas estariam prontas para alimentar o seu classificador. Para obter as caracter\u00edsticas corretas e um classificador preciso, precisaria de semanas ou mesmo meses de trabalho intensivo.<\/p>\n<p>Hoje em dia, para obter resultados iguais ou at\u00e9 melhores, basta usar uma Rede Neural Convolucional pr\u00e9-treinada e ajust\u00e1-la com as suas imagens e r\u00f3tulos. Este processo pode ser feito numa \u00fanica tarde.<\/p>\n<p>O Deep Learning trouxe-nos uma nova era tecnol\u00f3gica, de facto. Com um pequeno esfor\u00e7o, podemos construir modelos que superam o desempenho humano, e a palavra-chave para o fazer \u00e9 <b>dados.<\/b> Mas e se tivermos apenas alguns milhares de pontos de dados? E se os nossos dados n\u00e3o forem uma representa\u00e7\u00e3o justa da popula\u00e7\u00e3o? E se o conhecimento humano sobre o neg\u00f3cio for maior do que os nossos dados? Nesse caso, \u00e9 hora de incorporar o conhecimento de dom\u00ednio nas nossas Redes Neuronais Profundas (DNN)!<\/p>\n<blockquote><p>Ao incorporar conhecimento de dom\u00ednio, encontramos um ponto m\u00e9dio onde compreendemos o neg\u00f3cio, compreendemos a tecnologia e elevamos a tecnologia ao neg\u00f3cio, em vez de simplificar o neg\u00f3cio para se adequar \u00e0 tecnologia.<\/p>\n<p><em>Kelwin Fernandes<\/em><\/p><\/blockquote>\n<div class=\"course-cta\">\n\t\t<div class=\"course-cta-img\"><img decoding=\"async\" width=\"388\" height=\"602\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/09\/2-194x301@2x.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/09\/2-194x301@2x.png 388w, https:\/\/nilg.ai\/wp-content\/uploads\/2022\/09\/2-194x301@2x-193x300.png 193w, https:\/\/nilg.ai\/wp-content\/uploads\/2022\/09\/2-194x301@2x-300x465.png 300w\" sizes=\"(max-width: 388px) 100vw, 388px\" \/><\/div>\n\t\t<div class=\"course-cta-content\"><h6>Curso<\/h6><h3>Os Fundamentos do Aprendizagem Autom\u00e1tica<\/h3>\n\t\t\t<p>Mergulhe nos conceitos b\u00e1sicos de Machine Learning com o nosso curso.<\/p>\n\t\t\t<a href=\"https:\/\/nilg.ai\/pt\/product\/the-abcs-of-machine-learning\/\" class=\"cta_btn\">Saber mais<\/a>\n\t\t<\/div>\n\t<\/div>\n<h2>Adicionar Invari\u00e2ncias com Aumento de Dados<\/h2>\n<p>Como j\u00e1 sabemos, quanto mais dados tivermos, melhor ser\u00e1 o desempenho das Redes Neuronais Densas (DNNs). Isto acontece porque n\u00e3o estamos a explicar \u00e0s nossas DNNs como devem aprender as coisas; elas simplesmente fazem as suas infer\u00eancias a partir do que veem.<\/p>\n<p>Por exemplo, se quisermos treinar um modelo para detetar gatos, n\u00e3o dizemos ao modelo para procurar um mam\u00edfero pequeno com quatro patas, bigodes, cauda comprida, orelhas pontiagudas e com ou sem pelo. Em vez disso, mostramos fotografias de diferentes gatos e o modelo come\u00e7a a aprender como \u00e9 um gato. No entanto, se apenas mostrarmos fotografias de gatos pretos ou de gatos sentados num sof\u00e1, o nosso modelo poder\u00e1 \u201cpensar\u201d que essas caracter\u00edsticas s\u00e3o relevantes para detetar um gato e n\u00e3o ser\u00e1 capaz de detetar gatos quando essas condi\u00e7\u00f5es n\u00e3o estiverem presentes.<\/p>\n<p>Neste exemplo, queremos construir um modelo invariante \u00e0 cor, ao fundo, \u00e0 pose do gato e a quaisquer outras condi\u00e7\u00f5es que n\u00e3o sejam relevantes para a tarefa de dete\u00e7\u00e3o de gatos, utilizando pequenas quantidades de dados. Uma forma de o fazer \u00e9 atrav\u00e9s da utiliza\u00e7\u00e3o de<b> Aumento de Dados<\/b>.<\/p>\n<p>Com Data Augmentation, podemos usar a mesma imagem repetidamente, aplicando transforma\u00e7\u00f5es aleat\u00f3rias ou espec\u00edficas que n\u00e3o comprometem a tarefa. Desta forma, se quisermos construir um modelo invariante a certas condi\u00e7\u00f5es, devemos manipular essas condi\u00e7\u00f5es nos dados originais para criar novos pontos de dados.<\/p>\n<p>Usando o exemplo de dete\u00e7\u00e3o de gatos, para tornar o nosso modelo invariante, poder\u00edamos aplicar diferentes transforma\u00e7\u00f5es a imagens, por exemplo, zoom out, distor\u00e7\u00e3o, rota\u00e7\u00e3o, manipula\u00e7\u00e3o de contraste, manipula\u00e7\u00e3o de brilho e manipula\u00e7\u00e3o de fundo (subtraindo o fundo original e usando-o como um ecr\u00e3 azul para novos contextos). Com estas transforma\u00e7\u00f5es, \u00e9 mais f\u00e1cil para o modelo aprender o que \u00e9 relevante e o que n\u00e3o \u00e9.<\/p>\n<p><a href=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/Embedding-Domain-Knowledge-Image-invariances-1.svg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1129 attachment-svg\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/Embedding-Domain-Knowledge-Image-invariances-1.svg\" alt=\"\" \/><\/a><\/p>\n<p><strong>O que n\u00e3o fazer?<\/strong> Lembre-se, Aumentar Dados \u00e9 relevante para fornecer algum Conhecimento de Dom\u00ednio ao modelo, portanto, seja inteligente ao aplic\u00e1-lo. N\u00e3o aplique transforma\u00e7\u00f5es aleat\u00f3rias apenas para aumentar o n\u00famero de pontos de dados. Em vez disso, certifique-se de que as transforma\u00e7\u00f5es que est\u00e1 a aplicar fa\u00e7am sentido dentro do seu dom\u00ednio. Por exemplo, quando estiver a aplicar zoom \u00e0s suas imagens, n\u00e3o aplique zoom em excesso, pois poder\u00e1 remover o seu gato da imagem. Tamb\u00e9m n\u00e3o aplique zoom em excesso, pois acabar\u00e1 com alguns pixels a representar o seu gato.<\/p>\n<p>Para al\u00e9m de Data Augmentation, pode tamb\u00e9m usar <b>Aumento de Sa\u00edda. <\/b>Esta abordagem consiste em usar dados aumentados como entrada e a previs\u00e3o m\u00e9dia desses dados como sa\u00edda. Desta forma, a previs\u00e3o final n\u00e3o est\u00e1 condicionada \u00e0s vari\u00e2ncias de entrada.<\/p>\n<p>&nbsp;<\/p>\n<h2>Adicionar Invari\u00e2ncias com Redes Neuronais Profundas Adaptadas<\/h2>\n<p>Outra forma de adicionar invari\u00e2ncias a modelos DNN \u00e9 manipulando a pr\u00f3pria Rede Neural, o que pode ser feito utilizando diferentes abordagens. Neste artigo, apresentamos 3 exemplos de adapta\u00e7\u00e3o de DNN atrav\u00e9s da manipula\u00e7\u00e3o da fun\u00e7\u00e3o de perda, kernels e arquiteturas.<\/p>\n<h4>Manipula\u00e7\u00e3o da Fun\u00e7\u00e3o de Perda<\/h4>\n<p>A fun\u00e7\u00e3o de perda \u00e9 usada para penalizar o modelo quando ele se desvia do alvo. Neste caso, o nosso objetivo \u00e9 obter previs\u00f5es precisas e invariantes. Portanto, podemos usar a fun\u00e7\u00e3o de perda a nosso favor penalizando as vari\u00e2ncias. Por exemplo, usar uma fun\u00e7\u00e3o de perda desta forma (f(x) \u2013 f(ax+b))^2, onde x \u00e9 o valor da caracter\u00edstica, ajuda o modelo a ser invariante a <b>transforma\u00e7\u00f5es lineares<\/b>.<\/p>\n<h4>Manipula\u00e7\u00e3o de Kernels<\/h4>\n<p>Na sec\u00e7\u00e3o anterior, vimos que podemos adicionar invari\u00e2ncias a <b>ilumina\u00e7\u00e3o<\/b> e <b>contraste<\/b> com Aumento de Dados. Outra forma de adicionar estas invari\u00e2ncias \u00e9 aplicando normaliza\u00e7\u00e3o local. Podemos fazer isto pr\u00e9-processando ou manipulando alguns kernels de CNN para realizarem normaliza\u00e7\u00e3o local e congelando essa(s) camada(s) durante o treino.<\/p>\n<h4>Arquiteturas Personalizadas<\/h4>\n<p>Uma invari\u00e2ncia dif\u00edcil de adicionar em CNNs est\u00e1 relacionada com <b>pose<\/b>. Uma representa\u00e7\u00e3o 2D de um objeto 3D est\u00e1 sempre associada a uma pose, ou seja, a uma transla\u00e7\u00e3o e uma rota\u00e7\u00e3o. Este conceito n\u00e3o \u00e9 novo para o c\u00e9rebro humano, que \u00e9 capaz de desconstruir uma representa\u00e7\u00e3o 2D e compar\u00e1-la com objetos no mundo real (3D). De facto, o nosso c\u00e9rebro est\u00e1 t\u00e3o habituado a realizar Gr\u00e1ficos Inversos que at\u00e9 se deixa enganar por ilus\u00f5es \u00f3ticas.<\/p>\n<p>Pelo contr\u00e1rio, as CNNs n\u00e3o conseguem fazer estas associa\u00e7\u00f5es espaciais, visto que parte dessa informa\u00e7\u00e3o se perde com o max pooling. Para superar este problema, Geoffrey Hinton criou uma arquitetura de CNN inovadora onde os neur\u00f3nios s\u00e3o substitu\u00eddos por c\u00e1psulas, criando o conceito de <b>Redes de C\u00e1psulas<\/b>.<\/p>\n<p>Em resumo, as c\u00e1psulas realizam complexas computa\u00e7\u00f5es internas e encapsulam o resultado em formato vetorial. Este vetor tem uma dire\u00e7\u00e3o e um comprimento; o comprimento representa a probabilidade de uma determinada entidade estar presente e a dire\u00e7\u00e3o representa as caracter\u00edsticas do espa\u00e7o, incluindo pose, ilumina\u00e7\u00e3o e deforma\u00e7\u00e3o.<\/p>\n<p>Atualmente, o custo computacional para treinar uma Rede de C\u00e1psulas \u00e9 demasiado elevado para computadores pessoais, mas fique atento e continue a procurar arquiteturas que melhor se adequem \u00e0s suas necessidades.<\/p>\n<p>&nbsp;<\/p>\n<h2>Adicionar Invari\u00e2ncias de Grupo<\/h2>\n<p>Em alguns casos, poder\u00e1 ter vari\u00e2ncias relacionadas com alguns grupos (ra\u00e7a, g\u00e9nero, idade, pa\u00eds). A associa\u00e7\u00e3o do ponto de dados a um (ou mais) destes grupos pode ser irrelevante para o seu modelo ou mesmo injusta. Para evitar isso, uma op\u00e7\u00e3o \u00e9 realizar um <b>Voto M\u00e9dio<\/b> abordagem que assegura a invari\u00e2ncia de grupo. Pode tamb\u00e9m consultar a nossa apresenta\u00e7\u00e3o sobre <a href=\"https:\/\/nilg.ai\/pt\/blog\/202008\/fairness-in-ai\/\">Justi\u00e7a na IA<\/a> para mais sugest\u00f5es.<\/p>\n<p><a href=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/Embedding-Domain-Knowledge-Group-Invariances-3.svg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1134 attachment-svg\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/Embedding-Domain-Knowledge-Group-Invariances-3.svg\" alt=\"\" \/><\/a><\/p>\n<p>Como mostra a imagem acima, este m\u00e9todo consiste em duas partes. Em primeiro lugar, treina-se um modelo diferente para cada grupo e, em seguida, calcula-se a previs\u00e3o m\u00e9dia para obter o resultado final.<\/p>\n<p>Desta forma, temos modelos variantes combinados para computar uma previs\u00e3o invariante.<\/p>\n<p>&nbsp;<\/p>\n<h2>Remover Invari\u00e2ncias<\/h2>\n<p>Nas sec\u00e7\u00f5es anteriores, vimos como adicionar invarianza \u00e0s DNN. Contudo, existe uma invarianza que j\u00e1 vem integrada nas CNNs, devido \u00e0 sua arquitetura: a invarianza \u00e0 transla\u00e7\u00e3o. Esta caracter\u00edstica pode ser \u00fatil para um grande n\u00famero de tarefas. No entanto, em alguns casos, \u00e9 relevante saber a posi\u00e7\u00e3o do objeto em rela\u00e7\u00e3o \u00e0 imagem.<\/p>\n<p>Por exemplo, na colposcopia, cada imagem \u00e9 centrada no colo do \u00fatero, ou.<\/p>\n<p>Para evitar que os kernels convolucionais ignorem a informa\u00e7\u00e3o posicional, podemos passar essa informa\u00e7\u00e3o para as CNNs como canais adicionais. Por exemplo, adicionar 3 canais extra onde cada pixel assumiria o valor da sua linha, da sua coluna e da sua dist\u00e2ncia ao centro, respetivamente.<\/p>\n<p>&nbsp;<\/p>\n<h2>For\u00e7ar Comportamento Mon\u00f3tono<\/h2>\n<p>Neste ponto, j\u00e1 vimos como adicionar invari\u00e2ncias \u00e0s DNNs e como remov\u00ea-las a nosso favor. Nesta sec\u00e7\u00e3o, veremos como manipular as vari\u00e2ncias do modelo.<\/p>\n<p>Em alguns problemas, temos conhecimento de dom\u00ednio suficiente para saber o que esperar quando uma determinada caracter\u00edstica \u00e9 modificada. Por exemplo, na previs\u00e3o de vendas, quando mais nada muda, \u00e9 seguro assumir que uma diminui\u00e7\u00e3o de pre\u00e7o levar\u00e1 a um aumento nas vendas.<\/p>\n<p>Contudo, nos dados do mundo real, existe mais do que uma \u00fanica vari\u00e1vel a ser modificada, o que torna mais dif\u00edcil para o algoritmo aprender essas correla\u00e7\u00f5es esperadas. Por exemplo, no setor da hotelaria, durante a \u00e9poca alta, normalmente tanto os pre\u00e7os como as vendas aumentam. N\u00e3o obstante, n\u00e3o existe aqui uma rela\u00e7\u00e3o de causa e efeito. Neste caso, ambos os efeitos s\u00e3o causados pelo aumento da procura.<\/p>\n<p>Para ajudar o modelo a compreender melhor estas correla\u00e7\u00f5es, podemos for\u00e7\u00e1-lo a ter um <b>Comportamento Mon\u00f3tono. <\/b>Wilson Silva, et al. propuseram uma metodologia eficaz e intuitiva para o fazer num <a href=\"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-030-02628-8_15\" target=\"_blank\" rel=\"noopener\">papel com a nossa colabora\u00e7\u00e3o<\/a>. A sua abordagem consiste em dividir as caracter\u00edsticas monot\u00f3nicas das caracter\u00edsticas n\u00e3o restritas e faz\u00ea-las seguir dois fluxos diferentes, como mostrado na figura abaixo. Um fluxo \u00e9 concebido para caracter\u00edsticas n\u00e3o restritas e consiste numa DNN convencional. O segundo fluxo, concebido para caracter\u00edsticas monot\u00f3nicas, consiste numa DNN onde os pesos foram for\u00e7ados a ser positivos. No final, os dois fluxos independentes concatenam-se para dar a sa\u00edda final.<\/p>\n<p><a href=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/Embedding-Domain-Knowledge-Monotonic.svg\"><img decoding=\"async\" class=\"aligncenter wp-image-1132 attachment-svg\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/Embedding-Domain-Knowledge-Monotonic.svg\" alt=\"\" width=\"465\" height=\"583\" \/><\/a><\/p>\n<p>Voltando ao exemplo anterior, com esta abordagem, \u00e9 poss\u00edvel garantir que um aumento de pre\u00e7o influenciar\u00e1 sempre negativamente a previs\u00e3o de vendas, independentemente da esta\u00e7\u00e3o ou de exce\u00e7\u00f5es nos dados do comboio.<\/p>\n<p><b>Tem cuidado<\/b> ao utilizar esta t\u00e9cnica! Lembra-te de que est\u00e1s a transmitir Conhecimento de Dom\u00ednio; n\u00e3o forces um comportamento monot\u00f3nico se n\u00e3o tiveres 100% a certeza do efeito das caracter\u00edsticas.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"course-cta\">\n\t\t<div class=\"course-cta-img\"><img decoding=\"async\" width=\"582\" height=\"903\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/08\/1-194x301@3x.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/08\/1-194x301@3x.png 582w, https:\/\/nilg.ai\/wp-content\/uploads\/2022\/08\/1-194x301@3x-193x300.png 193w, https:\/\/nilg.ai\/wp-content\/uploads\/2022\/08\/1-194x301@3x-300x465.png 300w\" sizes=\"(max-width: 582px) 100vw, 582px\" \/><\/div>\n\t\t<div class=\"course-cta-content\"><h6>Curso<\/h6><h3>O Espectro do Machine Learning<\/h3>\n\t\t\t<p>Para dominar mais estrat\u00e9gias de machine learning, consulte o nosso curso.<\/p>\n\t\t\t<a href=\"https:\/\/nilg.ai\/pt\/product\/the-machine-learning-spectrum\/\" class=\"cta_btn\">Saber mais<\/a>\n\t\t<\/div>\n\t<\/div>\n<p>&nbsp;<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>O Deep learning revolucionou a intelig\u00eancia artificial? Sim! \u00c9 agora mais f\u00e1cil obter melhores previs\u00f5es com menos esfor\u00e7o? Tamb\u00e9m sim! \u00c9 poss\u00edvel para um macaco treinar uma DNN? Alguns podem responder \u201csim\u201d a esta pergunta, mas essa n\u00e3o \u00e9 a nossa opini\u00e3o. As DNNs nunca devem ser tratadas como caixas pretas; em vez disso, devemos entender o que realmente est\u00e1 a acontecer dentro delas para tirar o m\u00e1ximo proveito delas.<\/p>\n<p>Al\u00e9m disso, nunca subestime a intelig\u00eancia humana e o conhecimento espec\u00edfico! Combine-os com os seus modelos para os melhorar e a si mesmo.<\/p>\n<p>Se for um programador, n\u00e3o se esque\u00e7a de experimentar isto em casa!<\/p>\n<p>Se pretender integrar o Conhecimento de Dom\u00ednio e as abordagens anteriores n\u00e3o se adequam ao seu problema, ligue-nos e encontraremos uma solu\u00e7\u00e3o em conjunto.<\/p>\n  \n\n <div class=\"author-cta\">\n\t\t<div class=\"author-cta-img\">\n\t\t    \n\t\t    <img decoding=\"async\" width=\"1024\" height=\"906\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/07\/Web-Rafael.png\" class=\"attachment-full size-full\" alt=\"Rafael Cavalheiro NILG.AI\" srcset=\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/07\/Web-Rafael.png 1024w, https:\/\/nilg.ai\/wp-content\/uploads\/2022\/07\/Web-Rafael-300x265.png 300w, https:\/\/nilg.ai\/wp-content\/uploads\/2022\/07\/Web-Rafael-768x680.png 768w, https:\/\/nilg.ai\/wp-content\/uploads\/2022\/07\/Web-Rafael-600x531.png 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t    <\/div>\n\n<div class=\"author-cta-content\">\n\t<h3>Quer discutir esta ideia mais a fundo?<\/h3><p>Marcar uma reuni\u00e3o com <strong>Rafael Cavalheiro<\/strong><\/p>\t<a class=\"cta_btn\" onclick=\"Calendly.showPopupWidget('');return false;\"  \n\">Conhece o Rafael<\/a>\n\t\t\t\n\t<a href=\"https:\/\/nilg.ai\/pt\/?post_type=team&p=1650\" class=\"author-cta-link\">Saber mais<\/a>\n\t\t\t<\/div>\n\t<\/div>","protected":false},"excerpt":{"rendered":"<p>In the good old days, working as a Machine Learning Engineer meant working 95% of the time on feature engineering and 5% on training models with the extracted features. This was a manually intensive and time-consuming process, that usually led to inflexible proofs of concept that could hardly be adapted to new settings. Fortunately, Deep [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":1126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[48,56,81,45],"class_list":["post-1124","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical","tag-ai4tech","tag-computer-vision","tag-deep-learning","tag-machine-learning"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Embedding Domain Knowledge - NILG.AI<\/title>\n<meta name=\"description\" content=\"We explore how to build custom Machine Learning models that incorporate domain knowledge into their predictions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nilg.ai\/pt\/202102\/incorporar-conhecimento-de-dominio\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Embedding Domain Knowledge - NILG.AI\" \/>\n<meta property=\"og:description\" content=\"We explore how to build custom Machine Learning models that incorporate domain knowledge into their predictions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nilg.ai\/pt\/202102\/incorporar-conhecimento-de-dominio\/\" \/>\n<meta property=\"og:site_name\" content=\"NILG.AI\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-17T20:39:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-17T12:48:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/pexels-stanislav-kondratiev-2908984-e1654017775559.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1365\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paulo Maia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nilg_ai\" \/>\n<meta name=\"twitter:site\" content=\"@nilg_ai\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paulo Maia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/\"},\"author\":{\"name\":\"Paulo Maia\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d\"},\"headline\":\"Embedding Domain Knowledge\",\"datePublished\":\"2021-02-17T20:39:16+00:00\",\"dateModified\":\"2025-03-17T12:48:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/\"},\"wordCount\":1879,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/nilg.ai\/#organization\"},\"keywords\":[\"AI4tech\",\"Computer Vision\",\"Deep Learning\",\"Machine Learning\"],\"articleSection\":[\"Technical\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/\",\"url\":\"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/\",\"name\":\"Embedding Domain Knowledge - NILG.AI\",\"isPartOf\":{\"@id\":\"https:\/\/nilg.ai\/#website\"},\"datePublished\":\"2021-02-17T20:39:16+00:00\",\"dateModified\":\"2025-03-17T12:48:03+00:00\",\"description\":\"We explore how to build custom Machine Learning models that incorporate domain knowledge into their predictions.\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nilg.ai\/#website\",\"url\":\"https:\/\/nilg.ai\/\",\"name\":\"NILG.AI\",\"description\":\"Create ever-improving businesses with AI\",\"publisher\":{\"@id\":\"https:\/\/nilg.ai\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nilg.ai\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nilg.ai\/#organization\",\"name\":\"NILG.AI\",\"url\":\"https:\/\/nilg.ai\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg\",\"contentUrl\":\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg\",\"caption\":\"NILG.AI\"},\"image\":{\"@id\":\"https:\/\/nilg.ai\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/twitter.com\/nilg_ai\",\"https:\/\/youtube.com\/@nilg_ai\",\"https:\/\/www.linkedin.com\/company\/nilg-ai\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d\",\"name\":\"Paulo Maia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g\",\"caption\":\"Paulo Maia\"},\"url\":\"https:\/\/nilg.ai\/pt\/author\/paulo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Incorporar Conhecimento de Dom\u00ednio - NILG.AI","description":"Exploramos como construir modelos personalizados de Machine Learning que incorporam conhecimento de dom\u00ednio nas suas previs\u00f5es.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nilg.ai\/pt\/202102\/incorporar-conhecimento-de-dominio\/","og_locale":"pt_PT","og_type":"article","og_title":"Embedding Domain Knowledge - NILG.AI","og_description":"We explore how to build custom Machine Learning models that incorporate domain knowledge into their predictions.","og_url":"https:\/\/nilg.ai\/pt\/202102\/incorporar-conhecimento-de-dominio\/","og_site_name":"NILG.AI","article_published_time":"2021-02-17T20:39:16+00:00","article_modified_time":"2025-03-17T12:48:03+00:00","og_image":[{"width":2048,"height":1365,"url":"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/02\/pexels-stanislav-kondratiev-2908984-e1654017775559.jpg","type":"image\/jpeg"}],"author":"Paulo Maia","twitter_card":"summary_large_image","twitter_creator":"@nilg_ai","twitter_site":"@nilg_ai","twitter_misc":{"Written by":"Paulo Maia","Est. reading time":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/#article","isPartOf":{"@id":"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/"},"author":{"name":"Paulo Maia","@id":"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d"},"headline":"Embedding Domain Knowledge","datePublished":"2021-02-17T20:39:16+00:00","dateModified":"2025-03-17T12:48:03+00:00","mainEntityOfPage":{"@id":"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/"},"wordCount":1879,"commentCount":0,"publisher":{"@id":"https:\/\/nilg.ai\/#organization"},"keywords":["AI4tech","Computer Vision","Deep Learning","Machine Learning"],"articleSection":["Technical"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/","url":"https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/","name":"Incorporar Conhecimento de Dom\u00ednio - NILG.AI","isPartOf":{"@id":"https:\/\/nilg.ai\/#website"},"datePublished":"2021-02-17T20:39:16+00:00","dateModified":"2025-03-17T12:48:03+00:00","description":"Exploramos como construir modelos personalizados de Machine Learning que incorporam conhecimento de dom\u00ednio nas suas previs\u00f5es.","inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nilg.ai\/202102\/embedding-domain-knowledge\/"]}]},{"@type":"WebSite","@id":"https:\/\/nilg.ai\/#website","url":"https:\/\/nilg.ai\/","name":"NILG.AI","description":"Crie neg\u00f3cios em constante melhoria com IA","publisher":{"@id":"https:\/\/nilg.ai\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nilg.ai\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/nilg.ai\/#organization","name":"NILG.AI","url":"https:\/\/nilg.ai\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/nilg.ai\/#\/schema\/logo\/image\/","url":"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg","contentUrl":"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg","caption":"NILG.AI"},"image":{"@id":"https:\/\/nilg.ai\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/twitter.com\/nilg_ai","https:\/\/youtube.com\/@nilg_ai","https:\/\/www.linkedin.com\/company\/nilg-ai\/"]},{"@type":"Person","@id":"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d","name":"Paulo Maia","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/nilg.ai\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g","caption":"Paulo Maia"},"url":"https:\/\/nilg.ai\/pt\/author\/paulo\/"}]}},"_links":{"self":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts\/1124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/comments?post=1124"}],"version-history":[{"count":10,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts\/1124\/revisions"}],"predecessor-version":[{"id":4288,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts\/1124\/revisions\/4288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/media\/1126"}],"wp:attachment":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/media?parent=1124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/categories?post=1124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/tags?post=1124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}