Page 1

Machine Learning e Evolução Interativa sob a perspectiva de Search Based Software Engineering Grupo de Otimização em Engenharia de Software Universidade Estadual do Ceará – UECE Allysson Allex Abril/2013


Roteiro 

Inteligência Artificial & Machine Learning

Evolução Interativa

Proposta


Inteligência Artificial & ML Classification, learning and prediction.

Fuzzy e Métodos Probabilisticos na presença de incertezas. Computational search and optimisation techniques (SBSE).


Inteligência Artificial & ML 

Busca em OTIMIZAR a eficiência e a eficácia para encontrar BONS trade-offs de custo-benefício.

TODAS as formas em que IA pode ser aplicada à engenharia de software podem ser consideradas como MEIOS para OTIMIZAR o processo de engenharia ou seus produtos e, como tal, todos eles são EXEMPLOS de SBSE.

Em IA pesquisas-se técnicas para os CÁLCULOS que permitem PERCEBER, RACIOCINAR e AGIR.

Em Engenharia de Software concentra-se no APOIO de seres humanos para DESENVOLVER software MELHORES e mais RÁPIDOS.


Inteligência Artificial & ML 

Busca em OTIMIZAR a eficiência e a eficácia para encontrar BONS trade-offs de custo-benefício.

TODAS as formas em que IA pode ser aplicada à engenharia de software podem ser consideradas como MEIOS para OTIMIZAR o processo de engenharia ou seus produtos e, como tal, todos eles são EXEMPLOS de SBSE.

Em IA pesquisas-se técnicas para os CÁLCULOS que permitem PERCEBER, RACIOCINAR e AGIR.

Em Engenharia de Software concentra-se no APOIO de seres humanos para DESENVOLVER software MELHORES e mais RÁPIDOS.


Inteligência Artificial & ML 

Busca em OTIMIZAR a eficiência e a eficácia para encontrar BONS trade-offs de custo-benefício.

TODAS as formas em que IA pode ser aplicada à engenharia de software podem ser consideradas como MEIOS para OTIMIZAR o processo de engenharia ou seus produtos e, como tal, todos eles são EXEMPLOS de SBSE.

Em IA pesquisas-se técnicas para os CÁLCULOS que permitem PERCEBER, RACIOCINAR e AGIR.

Em Engenharia de Software concentra-se no APOIO de seres humanos para DESENVOLVER software MELHORES e mais RÁPIDOS.


Inteligência Artificial & ML 

Busca em OTIMIZAR a eficiência e a eficácia para encontrar BONS trade-offs de custo-benefício.

TODAS as formas em que IA pode ser aplicada à engenharia de software podem ser consideradas como MEIOS para OTIMIZAR o processo de engenharia ou seus produtos e, como tal, todos eles são EXEMPLOS de SBSE.

Em IA pesquisas-se técnicas para os CÁLCULOS que permitem PERCEBER, RACIOCINAR e AGIR.

Em Engenharia de Software concentra-se no APOIO de seres humanos para DESENVOLVER software MELHORES e mais RÁPIDOS.


Inteligência Artificial & ML 

A fim de melhorar, precisamos estudar uma MANEIRA de como MEDIR essa MELHORIA e, se tivermos isso, podemos usar SBSE para OTIMIZAR de acordo com ela.

Machine Learning é essencialmente o estudo de abordagens para computação, que MELHORAM com o USO.

Algoritmos de Machine Learning NÃO só podem ser usados para construir ferramentas para desenvolvimento de software e tarefas de manutenção, mas TAMBÉM podem ser INCORPORADOS em produtos de software para torná-los ADAPTÁVEIS e AUTO-CONFIGURÁVEIS.


Inteligência Artificial & ML 

A fim de melhorar, precisamos estudar uma MANEIRA de como MEDIR essa MELHORIA e, se tivermos isso, podemos usar SBSE para OTIMIZAR de acordo com ela.

Machine Learning é essencialmente o estudo de abordagens para computação, que MELHORAM com o USO.

Algoritmos de Machine Learning NÃO só podem ser usados para construir ferramentas para desenvolvimento de software e tarefas de manutenção, mas TAMBÉM podem ser INCORPORADOS em produtos de software para torná-los ADAPTÁVEIS e AUTO-CONFIGURÁVEIS.


Inteligência Artificial & ML 

A fim de melhorar, precisamos estudar uma MANEIRA de como MEDIR essa MELHORIA e, se tivermos isso, podemos usar SBSE para OTIMIZAR de acordo com ela.

Machine Learning é essencialmente o estudo de abordagens para computação, que MELHORAM com o USO.

Algoritmos de Machine Learning NÃO só podem ser usados para construir ferramentas para desenvolvimento de software e tarefas de manutenção, mas TAMBÉM podem ser INCORPORADOS em produtos de software para torná-los ADAPTÁVEIS e AUTO-CONFIGURÁVEIS.


Inteligência Artificial & ML 

Machine Learning lida com a questão de COMO construir programas que MELHOREM o seu desempenho em alguma tarefa através da EXPERIÊNCIA.

ÁREAS apropriadas para APLICAÇÕES de Machine Learning: - Engenharia de Requisitos (elicitação do conhecimento, prototipagem); - Reutilização de software (geradores de aplicação); - Testes e validação; - Manutenção (compreensão software); - Gerenciamento de projetos (custo, esforço, a previsão de defeito ou ou estimativa).


Inteligência Artificial & ML 

Machine Learning lida com a questão de COMO construir programas que MELHOREM o seu desempenho em alguma tarefa através da EXPERIÊNCIA.

ÁREAS apropriadas para APLICAÇÕES de Machine Learning: - Engenharia de Requisitos (elicitação do conhecimento, prototipagem); - Reutilização de software (geradores de aplicação); - Testes e validação; - Manutenção (compreensão software); - Gerenciamento de projetos (custo, esforço, a previsão de defeito ou ou estimativa).


Inteligência Artificial & ML

IA Fazer máquinas INTELIGENTES

SE DEFINIÇÃO, CONCEPÇÃO, IMPLANTAÇÃO de sistemas.


Inteligência Artificial & ML 

Os indivíduos não conseguem assimilar totalmente a GRANDE quantidade de dados decorrente dos inúmeros artefatos e atividades em um projeto de software.

MUITOS dados Domínios onde programas devem se ADAPTAR

POUCO conhecimento

KDD


Inteligência Artificial & ML 

Utilizar Data Mining para extrair o que é realmente relevante para os stakeholders e ajudá-los a compreender os dados sobre um sistema de software, o seu PROCESSO de desenvolvimento e para fazer previsões sobre qualidade, custo e evolução.

Data Mining é tão BOM quanto os seus DADOS coletados, ou seja, tendo BONS dados é o primeiro requisito para uma BOA exploração de dados. Não se descobre conhecimento a partir de dados RUINS.


Inteligência Artificial & ML 

Utilizar Data Mining para extrair o que é realmente relevante para os stakeholders e ajudá-los a compreender os dados sobre um sistema de software, o seu PROCESSO de desenvolvimento e para fazer previsões sobre qualidade, custo e evolução.

Data Mining é tão BOM quanto os seus DADOS coletados, ou seja, tendo BONS dados é o primeiro requisito para uma BOA exploração de dados. Não se descobre conhecimento a partir de dados RUINS.


Inteligência Artificial & ML 

Em engenharia de software os dados são extremamente heterogêneos.

Um outro problema comum e crítico com soluções de Data Mining para tarefas de engenharia de software é que a maioria dos algoritmos usa uma variedade de parâmetros, que são de domínios e dados específicos.

A seleção de dados é um problema igualmente importante que tem que estar no foco de pesquisas futuras.


Inteligência Artificial & ML 

Em engenharia de software os dados são extremamente heterogêneos.

Um outro problema comum e crítico com soluções de Data Mining para tarefas de engenharia de software é que a maioria dos algoritmos usa uma variedade de parâmetros, que são de domínios e dados específicos.

A seleção de dados é um problema igualmente importante que tem que estar no foco de pesquisas futuras.


Inteligência Artificial & ML 

Em engenharia de software os dados são extremamente heterogêneos.

Um outro problema comum e crítico com soluções de Data Mining para tarefas de engenharia de software é que a maioria dos algoritmos usa uma variedade de parâmetros, que são de domínios e dados específicos.

A seleção de dados é um problema igualmente importante que tem que estar no foco de pesquisas futuras.


Inteligência Artificial & ML 

Exemplos de tarefas de KDD em SE: - Previsão de defeitos; - Estimativa de esforço; - Análise de impacto; - Triagem de bugs; - Detecção de erros; - Depuração; - Etc.


Roteiro 

Inteligência Artificial & Machine Learning

Evolução Interativa

Proposta


Evolução Interativa 

Existem atividades da engenharia de software cuja compreensão é inerentemente SUBJETIVA, necessitando assim, uma possível intervenção humana.

Utilização da evolução INTERATIVA como meio de empregar o ser humano na definição da função objetivo.

Incorpora-se ao processo de busca o CONHECIMENTO, PREFERÊNCIAS e demais aspectos PSICOLÓGICOS para que assim estimule o algoritmo de acordo com as predileções do tomador de decisão.

O ser humano tem um papel vital ao longo desse processo, justamente quando a função objetivo NÃO pode ser explicitamente CAPTURADA através de algoritmos ou existem elementos que exigem julgamentos de cunho pessoal.


Evolução Interativa 

Existem atividades da engenharia de software cuja compreensão é inerentemente SUBJETIVA, necessitando assim, uma possível intervenção humana.

Utilização da evolução INTERATIVA como meio de empregar o ser humano na definição da função objetivo.

Incorpora-se ao processo de busca o CONHECIMENTO, PREFERÊNCIAS e demais aspectos PSICOLÓGICOS para que assim estimule o algoritmo de acordo com as predileções do tomador de decisão.

O ser humano tem um papel vital ao longo desse processo, justamente quando a função objetivo NÃO pode ser explicitamente CAPTURADA através de algoritmos ou existem elementos que exigem julgamentos de cunho pessoal.


Evolução Interativa 

Existem atividades da engenharia de software cuja compreensão é inerentemente SUBJETIVA, necessitando assim, uma possível intervenção humana.

Utilização da evolução INTERATIVA como meio de empregar o ser humano na definição da função objetivo.

Incorpora-se ao processo de busca o CONHECIMENTO, PREFERÊNCIAS e demais aspectos PSICOLÓGICOS para que assim estimule o algoritmo de acordo com as predileções do tomador de decisão.

O ser humano tem um papel vital ao longo desse processo, justamente quando a função objetivo NÃO pode ser explicitamente CAPTURADA através de algoritmos ou existem elementos que exigem julgamentos de cunho pessoal.


Evolução Interativa 

Existem atividades da engenharia de software cuja compreensão é inerentemente SUBJETIVA, necessitando assim, uma possível intervenção humana.

Utilização da evolução INTERATIVA como meio de empregar o ser humano na definição da função objetivo.

Incorpora-se ao processo de busca o CONHECIMENTO, PREFERÊNCIAS e demais aspectos PSICOLÓGICOS para que assim estimule o algoritmo de acordo com as predileções do tomador de decisão.

O ser humano tem um papel vital ao longo desse processo, justamente quando a função objetivo NÃO pode ser explicitamente CAPTURADA através de algoritmos ou existem elementos que exigem julgamentos de cunho pessoal.


Evolução Interativa Computação Evolucionária

Computação Evolucionária Interativa

Algoritmo Genético Interativo

Fundamento: mecanismos difundidos na natureza.

Avaliação subjetiva humana + busca computacional.

Problemas: fadiga humana e aplicar particularidades do julgamento humano em uma função objetivo.


Evolução Interativa Computação Evolucionária

Computação Evolucionária Interativa

Algoritmo Genético Interativo

Fundamento: mecanismos difundidos na natureza.

Avaliação subjetiva humana + busca computacional.

Problemas: fadiga humana e aplicar particularidades do julgamento humano em uma função objetivo.


Evolução Interativa Computação Evolucionária

Computação Evolucionária Interativa

Algoritmo Genético Interativo

Fundamento: mecanismos difundidos na natureza.

Avaliação subjetiva humana + busca computacional.

Problemas: fadiga humana e aplicar particularidades do julgamento humano em uma função objetivo.


Roteiro 

Inteligência Artificial & ML

Evolução Interativa

Proposta


Proposta 

Criar um “modelo” do cliente para avaliar as SOLUÇÕES SUBJETIVAS no Problema do Próximo Release.

Fase 1

Fase 2

Fase 3


Referências 

Funes, P., Bonabeau, E., Herve, J., and Morieux,Y. (2004). Interactive multiparticipanttour allocation. In Evolutionary Computation, 2004. CEC2004. Congress on, vo-lume 2, pages 1699–1705. IEEE.

Harman, M. (2007). Search based software engineering for program comprehension.In Program Comprehension, 2007. ICPC’07. 15th IEEE International Conference on,pages 3–13. IEEE.

Harman, M. (2010). The relationship between search based software engineering andpredictive modeling. In Proceedings of the 6th International Conference on PredictiveModels in Software Engineering, page 1. ACM.

Harman, M. (2011). Software engineering meets evolutionary computation. Computer,44(10):31–39.Harman, M., McMinn, P., de Souza, J. T., and Yoo, S. (2012). Search based softwareengineering: Techniques, taxonomy, tutorial. In Empirical Software Engineering andVerification, pages 1–59. Springer.


Referências 

Menzies,T. (2001). Practical machine learning for software engineering and knowledgeengineering. Handbook of Software Engineering and Knowledge Engineering, 690.Rapps, S. and Weyuker, E. J. (1985). Selecting software test data using data flow information. Software Engineering, IEEE Transactions on, (4):367–375.

Rech, J. and Althoff, K.-D. (2004). Artificial intelligence and software engineering: Status and future trends. KI, 18(3):5–11.

Takagi, H. (2001). Interactive evolutionary computation: Fusion of the capabilities of ecoptimization and human evaluation. Proceedings of the IEEE, 89(9):1275–1296.

Zhang, D. (2000). Applying machine learning algorithms in software development. InProc. of Monterey Workshop on Modeling Software System Structures, pages 275–285.DTIC Document.

Zhang, D. and Tsai, J. J. (2003). Machine learning and software engineering. SoftwareQuality Journal, 11(2):87–119


OBRIGADO!

SOES #43 - Machine Learning e Evolução Interativa sob a perspectiva de SBSE  
Read more
Read more
Similar to
Popular now
Just for you