Esta apresentação é disponibilizada pelo centro Standford para desenvolvimento
profissional
Ok. Bom dia e bem vindos de volta
a terceira palestra para esta classe. Então,
aqui está o que quero fazer hoje
E... em alguns dos
tópicos que eu irei fazer hoje podem parecer um pouco que eu esteja meio que, pulando
de um tópico a outro, mas aqui está, mais ou menos, o roteiro para hoje e o
fluxo lógico de idéias.
Na última palestra falamos sobre regressão linear e hoje eu quero falar sobre
um tipo de adaptação dela chamada (locally weighted regression). É um algoritmo
muito popular, na verdade este provavelmente é um dos algoritmos de aprendizado de máquina
favoritos de um de meus antigos mentores. Então
iremos falar sobre uma provável segunda interpretação da regressão linear
E usá-la para nos mover ao nosso primeiro algoritmo de classificação
que é regressão logística
Tomaremos uma pequena digressão para falar sobre uma coisa chamada algoritmo 'perceptron'
que é algo que nós iremos voltar a discutir, novamente, mais tarde neste trimestre
e
Se o tempo permitir, eu espero chegar ao método de Newton, o qual é um algoritmo para
ajustar modelos de
regressão logística.
Então, recapitulando onde nós paramos na palestra anterior,
lembrem-se que a notação que eu defini foi que
eu usei isto
X, i sobrescrito
Y, i sobrescrito, para denotaro exemplo de treinamento i
e
quando estávamos falando sobre regressão linear
ou método dos mínimos quadrados
Nós usamos isto para denotar
o valor predito resultado
da aplicação de minha "hipótese" H
na entrada Xi
E minha hipótese
era parametrizada pelo
vetor de parâmetros theta
E então dizemos que isto era igual à soma de j = 0 á n
da multiplicação de theta j por xj
i superscrito
que é produto de theta transposto por X
E temos a convenção que X
zero subscrito, é igual a 1, Então isto conta para a intersecção no nosso
modelo de regressão linear
E o n minúsculo aqui
era a notação que eu estava usando para
o número de 'features' no meu conjunto de Treinamento. Ok? Então
no exemplo quando tentamos predizer o preço de casas, nós tínhamos duas 'features, o tamanho
da casa e o número de quartos
Nós tínhamos duas features, portanto, n-zinho era igual a 2
Então, apenas para
terminar de recapitular a palestra anterior
nós definimos esta função de custo quadrática J de theta
era igual a 1/2, soma de i = 1 à m ....
...
ao quadrdado
onde esta é a soma sobre nossos m exemplos de treinamento e meu conjunto de treinamento. Então
m minúsculo
era a notação que eu estava usando para denotar o número de exemplos de treinamento que eu tinha
e o tamanho do meu conjunto de treinamento
E no fim da última palestra
nós derivamos
o valor de theta que minimiza isto na forma fechada, que era X
transposto X
inverso X transposto
Y. Ok?
Então
A medida que continuarmos a palestra de hoje, Eu continuarei a usar esta anotação e, novamente,
Eu percebo que é uma grande quantidade de notações para todos lembrarem,
Então se durante esta palestra você se esquecer - se você tiver problemas para se lembrar
o que m minúsculo é ou o que n minúsculo é ou qualquer coisa, por favor levante sua mão e pergunte.
Quando nós falamos sobre regressão linear da última vez
nós usamos duas features. Uma delas era
o tamanho das casas em 'pés' quadrados, Então a área de convivência da casa
e a outra feature era o número de quartos na casa
Geralmente, nós aplicamos um algoritmo de aprendizado de máquina a um problema que
importa para você
A escolha de features irá depender muito de você, certo?
E o modo como você escolhe suas features para dar ao algoritmo, frequentemente irá
causar um grande impacto na maneira como ele funciona.
Então, por exemplo
a escolha que nós fizemos da última vez era x1 igual ao tamanho.
e vamos deixar esta idéia de feature do número de quartos por enquanto. Vamos dizer que nós não temos dados
que nos digam quantos quartos há nestas casas
Uma coisa que você poderia fazer é definir - oh, vamos
desenhar isto
E então...
Então digamos que isto era o tamanho da casa e que este é o preço da casa, então
Se você usar
isto como uma feature, talvez você tenha theta0 mais theta1
x1, é um tipo de, modelo linear.
Se você escolher - deixe-me apenas copiar
os mesmos dados de novo, certo?
Você pode definir o conjunto de features onde x1 é igual ao tamanho da casa
e x2 é
o quadrado
do tamanho
da casa, ok?
Então x1 é o tamanho da casa em, digamos, uma medida quadrada (e.g. m²) e x2 é
qualquer medida quadrada da casa e apenas
eleve esse número ao quadrado, e isto seria outro modo de escolher uma feature
e se você fizer isto então
o mesmo algoritmo irá se ajustar
a uma função quadrática para você
theta2, x1 ao quadrado
ok? Porque isto
na verdade é x2. E
dependendo da aparência dos dados, talvez isto se ajuste
levemente melhor aos dados. Na verdade você pode levar isto
ainda mais adiante
O que é - vamos ver
Eu tenho sete exemplos de treinamento aqui, então na verdade você pode
,talvez, ajustar até um polinômio de grau 6. Você poderia ajustar um modelo
theta0 mais
theta1, x1 mais theta2
x ao quadrado mais etc...
até theta6. X à
potência de 6 e theta é o polinômio
para estes sete pontos de dados
E se você fizer isto, você vai descobrir que
você criou um modelo que se ajusta exatamente aos seus dados. É aí que, eu acho,
neste exemplo que eu desenhei, nós temos 7 pontos de dados, então se você ajusta um
modelo de polinômio de grau 6, você pode, meio que, ajustar
uma linha que passa por estes sete pontos perfeitamente
e você provavelmente encontra uma curva que
você iria conseguir algo
parecido com isto
E por um lado, é um ótimo modelo no sentido que ele
se ajusta perfeitamente aos dados de treinamento
Mas por outro, este provavelmente não é
um bom modelo no sentido que
nenhum de nós, realmente pensa que esta seja uma boa predição dos preços
das casas, como uma função do tamanho da casa, certo? Então
Na verdade, nós voltaremos a isto mais tarde. Acontece que
nos modelos que nós temos aqui;
Eu sinto que talvez o modelo quadrático se ajuste melhor
Enquanto que
O modelo linear parece que possui um pouco de componente quadrático nestes
dados
que a função linear não está capturando
Então nós iremos voltar a isto um pouco mais tarde e falar sobre os problemas
associados com ajuste de modelos que são, ou muito simples, usam dos pequenos
conjuntos de features, ou
em modelos que são muito complexos e talvez
usem um conjunto muito grande de featurees
apenas para dar-lhes
um nome,
nós chamamos isto de
o problema de 'underfitting' (subajuste)
e, muito informalmente, isto se refere a uma configuração onde
existem padrões óbvios que - onde há padrões nos dados que
o algoritmo está falhando a se ajustar
E a este problema aqui nós nos referimos como sendo
overfitting (sobreajuste)
e, novamente, muito informalmente,
isto acontece quando o algoritmo está ajustando às Idiossincrasias de um conjunto de dados específicos
certo? Isto acontece apenas porque
das sete casas que tiramos amostras em Portland, ou de onde quer que você esteja coletando dados,
esta casa acaba por ser um pouco mais cara, esta outro um pouco menos
cara, e por
ajustar seis ao polinômio nós, meio que, ajustamos características individuais
deste conjunto de dados,
Ao invés das verdadeiras tendências subjacentes
de como o preço das casas varia como uma função do tamanho da casa. Ok?
Então, estes são dois problemas muito diferentes. Nós iremos definí-los mais formalmente mais tarde.
e falar sobre como atacar cada um destes problemas.
Mas por agora eu
espero apreciar que há este assunto de seleção de features.
Então se você quiser apenas
ensinar-nos os problemas de aprendizado, existem poucas maneiras de fazê-lo
Então
Nós iremos falar sobre
algoritmos de seleção de features, mais tarde neste trimestre também. Então algoritmos automáticos
para escolher
que features usar em um
problema de regressão como este
O que eu quero fazer hoje é falar sobre uma classe de algoritmos
chamados de algoritmos de aprendizado não paramétricos que irão ajudar
de alguma forma, a aliviar a necessidade de você escolher features muito cuidadosamente. Ok?
E isto nos leva a nossa discussão sobre (locally weighted regression).
E só pra definir o termo
A regressão linear, da medida que definimos até agora, é um exemplo de um algoritmo de aprendizado paramétrico
e
algoritmo de aprendizado paramétrico
da maneira como é definido é
um algoritmo que tem um número fixo de parâmetros
Que se ajustam aos dados, Então
Na regressão linear
nós temos um conjunto fixo de parâmetros theta. Que deve
se ajustar aos dados
Em contraste, o que eu vou falar sobre agora é nosso primeiro algoritmo de aprendizado não-paramétrico.
A definição formal, a qual não é muito intuitiva, eu substitui por uma
segunda, digamos, mais
intuitiva.
O tipo de definição formal do algoritmo de aprendizado não paramétrico é de um algoritmo
onde o número de paramâmetros
cresce
com M, com o tramanho do conjunto de treinamento. E geralmente é
definido como um número de parâmetros cresce linearmente com o tamanho do conjunto de treinamento.
Esta é a definição formal
Uma
definição levemente menos formal é que
A quantidade de coisa que seu algoritmo de aprendizado precisa
para se manter funcionando
irá crescer linearmente com o conjunto de treinamento ou, outra forma de dizer isto, é um
algoritmo que
Nós iremos precisar manter o conjunto de treinamento inteiro, mesmo depois do aprendizado. Ok? Então
Não se preocupe demais sobre esta definição. Mas
O que eu quero agora é
descrever um algoritmo de aprendizado não-paramétrico específico
chamado "locally weighted regression"
O qual também recebe um par de outros nomes
O qual também é nomeado como Loess, por razões meio históricas. Loess
Geralmente é soletrado L-O-E-S-S
algumas vezes falando assim,
também. Eu só chamo de "locally weighted regression"
Então aqui está
a idéia. Este será um algoritmo que vai nos permitir
nos preocupar um pouco menos sobre ter que escolher features muito cuidadosamente.
Então
Para meu exemplo de motivação vamos dizer que eu
tenho um
conjunto de terinamento que parece com este, ok?
Então isto é X e isto é Y
Se você executar
regressão linear nisto e você ajustar talvez, uma função linear a isto
você acaba com uma
mais ou menos
linha reta, a qual não é um ajuste muito bom para esses dados.
Você ainda pode sentar e encarar isto e tentar decidir que features são usadas certo
Então talvez você queira jogar uma função quadrática
Mas ela não é realmente quadrática também. Então talvez você queira
modelar isto como um X
mais X ao quadrado mas talvez alguma função do seno de X ou algo do tipo
Na verdade você pode sentar e perder tempo com features
E depois de um tempo você provavelmente virá com um conjunto de features cujo modelo está
ok, mas vamos falar de um algoritmo que
você pode usar sem necessidade de fazer isso
Então
Se - bem
suponha que você quer avaliar
sua hipótese H
em um certo ponto.
Com um certo ponto de requisição em X. ok? e
vamos dizer que
você quer saber qual o valor predito de
Y
nesta posição de X, certo? Então
para a regressão linear
O que nós estamos fazemos era ajustar
theta
para minimizar
a soma sobre i
Yi menos theta, transposto Xi
ao quadrado e retornando theta
transposto X. Ok?
Então esta era regressão linear
Em contraste, em "locally weighted linear regression" você irá fazer as coisas levemente
diferente. ok?
vamos olhar para este ponto X
e então eu irei olhar no meu conjunto de dados e levar em consideração
apenas o conjunto de pontos, meio que, em uma pequena vizinhança de X. Ok?
Então nós iremos olhar onde Eu quero avaliar minha hipótese. Eu vou olhar
apenas a vizinhança
deste ponto. Onde eu quero avaliar minha hipótese
E então eu vou pegar,
digamos, apenas estes poucos pontos
e Irei
aplicar regressão linear
para ajustar uma linha reta apenas para este subcojunto dos dados, ok? Eu
irei usar este sub-termo subconjunto onde nós iremos voltar novamente
Então nós temos este conjunto de dados e Eu ajustei uma linha reta
a ele e talvez eu tenha uma linha como esta
e O que eu irei fazer então é
avaliar este valor particular na linha reta
e este será o valor que eu retorno para meu algoritmo
Eu acho que isto seria o valor predito
para
Isto seria o valor que minha hipótese retornaria
em "locally weighted regression" ok? Então
nós iremos seguir em frente. Deixe me continuar e formalizar isto