A primeira pantalla de LearningML presenta 3 tarxetas para seleccionar o tipo de datos que queres recoñecer no teu modelo: textos, imaxes ou conxuntos numéricos. Ao facer clic en calquera delas preséntase a pantalla para construír o modelo do tipo seleccionado.
Desenrolo do modelo: Recoñecemento de texto
ADESTRAMENTO: Datos de texto etiquetados
Empezamos creando as 2 clases cadrado e círculo, e cargando os datos de definicións de cada unha das clases, que consisten en 10 definicións textuais distintas de círculo e cadrado. Isto son os datos etiquetados:cada definición está etiquetada como "círculo" ou "cadrado"
As técnicas de Machine Learning teñen como obxectivo construír moldes ou estruturas denominados modelos, capaces de realizar tarefas para as que se require algún tipo de "intelixencia" como clasificar, recoñecer ou xerar obxectos (textos, imaxes, vídeo, música, etcétera).
A característica máis importante de calquera destas técnicas é a súa natureza inductiva, pois o modelo obtense como resultado dunha análise estatística de grandes cantidades de datos de exemplo.
A análise e a consecuente construción do modelo, realízao algún dos moitos algoritmos de Machine Learnig existentes.
Pódese concluír que calquera técnica de Machine Learning consiste en:
a construción dun modelo de intelixencia artificial a partir da análise estatística dun conxunto de datos de exemplo.
A aprendizaxe supervisada prodúcese en tres fases:
Adestramento. O usuario recompila un conxunto de datos de exemplo do tipo que se desexa recoñecer ou clasificar e etiquetaos coa clase á que pertence. Trátase dun proceso manual: é o humano quen realiza e organiza estes datos.
O primeiro paso é sempre recompilar os datos e verificar que sexan válidos, útiles e completos. A estes datos etiquetados chamarémolos conxunto de datos (dataset).
Dividimos o dataset, obtendo o conxunto de adestramento (trainset,tipicamente o 80%) e o de proba (testset, habitualmente o 20% restante).
Creación propia. Distribución típica de dataset(CC BY-SA)
Aprendizaxe. Os datos de exemplo debidamente organizados, que é o mesmo que dicir etiquetados, introdúcense como entrada dun algoritmo de Machine Learning elixido polo usuario entre os moitos existentes. Durante esta fase o algoritmo realiza a análise dos datos para atopar patróns e xerar o modelo de Machine Learning.
Utilizando o trainset adestramos un modelo.
Utilizando o testset o modelo próbase a sí mismo obtendo a matriz de confusión.
Avaliación. O usuario proba o modelo construído sobre un conxunto de datos similares pero distintos aos usados na fase de adestramento. O obxectivo é comprobar a súa capacidade de xeneralización. É dicir, como de bo é para recoñecer ou clasificar exemplos que non se utilizaron durante a aprendizaxe.
Empregando novos datos avaliamos canto aprendeu o modelo.
Proba e seguimento do seu desempeño
Por exemplo, se partimos dun conxunto de datos etiquetados, como fotografías clasificadas segundo se conteñen imaxes de paxaros ou peixes. O propósito é desenvolver un modelo que sexa capaz de predicir, para unha imaxe nova que aínda non analizamos, se esta contén un paxaro, un peixe ou ningún dos dous.
Todos parten duns datos iniciais, entrénanse e aprenden con eles, e logo poden usar esta aprendizaxe para clasificar ou predicir datos novos.
En concreto,
chámaselle modelo, á estrutura do sistema entrenado
...é coma se fixeran un molde ou estrutura cos datos e logo probanse ese "molde" cos datos novos, para comprobar "se lle serve" ou "non lle serve"
Código Python: Gráfica dataset
import matplotlib.pyplot as plt
# Datos
sizes = [80, 20]
labels = ['Trainset (80%) ', 'Testset (20%)']
colors = ['skyblue', 'orange']
# Crear gráfico circular
plt.figure(figsize=(6, 6))
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
plt.title('Distribución do Dataset dun modelo')
plt.show()
Proxecto Avanzado de ML con aprendizaxe supervisada: Distinguir texto
Duración
60 min
Agrupamento:Pequeno grupo
2-3
Creación propia. Modo avanzado LearningML(CC BY-SA)
Utilizando o modo avanzado de LearningML repite o proceso de crear un modelo que distinga entre dous tipos de texto: definicións textuais de círculo ou de cadrado cos mesmos datos
Elixe o algoritmo de ML Redes neuronais e os parámetros por 5 Épocas (epoch), 10 Tamaño de lote e 0.001 Taxa de aprendizaxe
Escolle en Validación , Porcentaxe de mostras para validación:25
Adestra o modelo con eses parámetros
Explica a matriz de confusión obtida
Comproba o modelo con definicións textuais de círculo e cadrado. Explica os resultados obtidos. Funciona o modelo?
É unha rexión plana limitada por unha circunferencia, a cal é unha curva pechada cuxos puntos están a unha distancia constante do seu centro.
É unha figura perfectamente simétrica, caracterizada por ter un radio constante desde un punto central cara a todos os puntos do seu bordo.
Unha superficie plana cuxos límites están determinados por unha curva uniforme equidistante do centro.
É un polígono regular con catro lados iguais e catro ángulos de 90 graos cada un.
É un paralelogramo no que todos os lados teñen a mesma lonxitude e os ángulos interiores son rectos.
É un rectángulo especial cuxas diagonais son de igual lonxitude e crúzanse en ángulo recto
Colle unha definición de proba na que os resultados non foran bos. Cámbia os epoch a 10. Comproba os cambios coa definición de proba anterior.
Volve epoch a 5 e cambia tamaño de lote a 5. Comproba os cambios coa definición de proba anterior.
Volve a tamaño de lote 10 e indica tasa de aprendizaxe 1,001. Comproba os cambios coa definición de proba anterior.
Que significan os parámetros époch e tamaño de lote?Como afectan ó modelo?
Que significa Porcentaxe de mostras para validación 25? Pista: Dataset =Trainset+Testset
Investiga o que é o algoritmo de ML KNN e proba o seu funcionamento.
Rexistra no teu portafolio as respostas e conclusións
Cada vez que se entrena un modelo os resultados poden cambiar lixeiramente, por iso, non te preocupes se non che saíu exactamente o seguinte, só intenta razonar sobre os resultados e comprender os conceptos importantes sobre a aprendizaxe supervisada.
Introducimos os datos etiquetados
Creación propia. Subida datos etiquetados(CC BY-SA)
Escollemos o algoritmo de ML desexado e os parámetros asociados
Unha matriz de confusión é unha ferramenta que permite avaliar o rendemento de modelos de clasificación, como a esta rede neuronal. Está organizada en filas e columnas que representan as clases reais (os datos orixinais) e as clases preditas (as estimacións do modelo). Cada cela da matriz mostra o número de predicións que caen nesa categoría específica.
No noso caso, os datos proveñen de dúas clases: definicións de círculo e definicións de cadrado.
A matriz obtida despois de adestrar o modelo e probalo co testset 25% de 20 definicións=5 definicións reservadas para autoproba do propio modelo, ten os seguintes resultados:
Cela (círculo, círculo): 1, que significa que o modelo clasificou correctamente 1 definición de círculo como "círculo".
Cela (círculo, cadrado): 0, indicando que non houbo erros clasificando definicións de círculo como cadrado.
Cela (cadrado, círculo): 2, o que significa que houbo 2 erros clasificando definicións de cadrado como círculo.
En resumo, a matriz reflicte que o modelo ten dificultades principalmente coas definicións de cadrado (confundíndoas con círculo)
Avaliamos o modelo coas definicións de proba
Cadrado definición 1
Creación propia. Resultado 1ª definición cadrado(CC BY-SA)
Cadrado definición 2
Creación propia. Resultado 2ª definición cadrado(CC BY-SA)
Cadrado definición 3
Creación propia. Resultado 3ª definición cadrado(CC BY-SA)
Círculo definición 1
Creación propia. Resultado 1ª definición círculo(CC BY-SA)
Círculo definición 2
Creación propia. Resultado 2ª definición círculo(CC BY-SA)
Círculo definición 3
Creación propia. Resultado 3ª definición círculo(CC BY-SA)
Como vemos, aínda que o noso modelo funciona, xa que predice correctamente, a proporción da outra clase ou categoría é moi alta.
Cambiamos epoch a 10 e volvemos a adestrar o modelo
Creación propia. Resultado subindo a 10 epoch(CC BY-SA)
A proporción da predicción real círculo, sube moito. O modelo mellora a predicción ó subir as epoch.
Cambiamos o tamaño dos lotes de dato a 5 e volvemos a adestrar o modelo
Creación propia. Resultado pasando a 5 lotes de datos(CC BY-SA)
A proporción da predicción real círculo, sube algo. O modelo mellora un pouco a predicción ó baixar o tamaño dos lotes de datos.
Isto NON ten que ser sempre así, hai que buscar o valor do parámetro que consigue mellores prediccións.
Cambiamos a taxa de aprendizaxe a 100,1 e volvemos a adestrar o modelo
Creación propia. Resultado pasando a taxa de aprendizaxe a 100,1(CC BY-SA)
A proporción da predicción real círculo, sube ó 100%. O modelo mellora moitísimo a predicción ó subir a taxa de aprendizaxe. A incerteza é agora 0. O modelo está completamente seguro de que é un círculo.
Isto NON ten que ser sempre así, hai que buscar o valor do parámetro que consigue mellores prediccións.
Algoritmo KNN
Explicación do algoritmo KNN
O algoritmo KNN (K-Nearest Neighbors, ou Veciños máis Próximos) é un dos máis simples e efectivos en Machine Learning para clasificación e regresión.
Funciona desta maneira:(K é o parámetro que indica cantos veciños hai que buscar para decidir)
Almacena datos: O algoritmo non realiza cálculos complexos antes de facer unha predición; simplemente garda os datos de adestramento.
Busca veciños próximos: Cando necesitas clasificar ou facer unha predición dun novo punto de datos, o algoritmo busca os K puntos máis próximos nos datos de adestramento segundo unha métrica de distancia (como a distancia euclidiana).
Decide:
Se estás a facer unha clasificación, asignará ao novo punto a categoría máis común entre as súas K veciños.
Se é regresión, calculará a media (ou algunha outra estatística) dos valores dos seus K veciños.
É intuitivo porque basease na idea de que os datos similares adoitan estar preto uns doutros. Con todo, pode volverse lento se tes moitos datos, xa que necesita calcular as distancias para cada novo dato que analizas.
Epoch: É unha pasada completa do modelo por todo o conxunto de datos de adestramento. Despois de 10 epochs, o modelo procesou os datos de adestramento dez veces, o dobre que antes, 5 o que debería mellorar a súa capacidade de clasificación.
Tamaño de lote: É o número de mostras procesadas antes de que o modelo actualice os seus parámetros. Un tamaño de lote de 10 implica que o modelo axusta os seus pesos despois de analizar 10 exemplos á vez.
Taxa de aprendizaxe: Controla o tamaño dos axustes que o modelo realiza en cada actualización. Unha taxa baixa de 0,001 asegura que os cambios sexan graduais, reducindo o risco de sobreajustar(axustarse demasiado ós datos que xa ten, e non ser quen de clasificar ben os novos) os datos, pero tamén pode requirir máis tempo de adestramento.
Usando o arquivo de datos DatosCansGatos proba a realizar o mesmo proceso, pero neste caso recoñecendo 2 tipos de animais coas súas imaxes: can e gato.
No mesmo repositorio, tes exemplos de imaxes de cans e gatos para probar o modelo