Machine learning senza programmazione?

1

Sono vecchio alla programmazione e molto principiante al Machine Learning e ciò che mi ha sorpreso è la definizione quando ho digitato in google ho trovato questo.

Machine learning is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed. Machine learning focuses on the development of computer programs that can teach themselves to grow and change when exposed to new data.

Le confusioni sono:

  1. In un primo momento afferma che consente al computer di apprendere senza un programma esplicito in seguito ha detto che è lo sviluppo del programma? Che diamine è?

  2. Conosco C #, Java, SQL, HTML / CSS non posso usare queste programmazioni in Machine learning o cos'altro è, se non è programmazione? o è programmazione.?

  3. Richiede altre lingue se è in programmazione

posta Muhammad Faizan Khan 12.07.2016 - 07:55
fonte

5 risposte

11

Prima di tutto, mi sembra che manchi (o forse fraintendimenti) il bit "esplicitamente" in "senza essere programmato esplicitamente" (dalla citazione nella domanda).

Ciò non significa che non sia necessaria alcuna programmazione, significa che non stai programmando una soluzione specifica al problema, ma invece quello che stai facendo è un programma più generale che può, con i giusti parametri, risolvere il problema, e anche un modo per il programma di aggiornare i suoi parametri per arrivare alla soluzione (questa è la parte di apprendimento).

In secondo luogo, qualsiasi linguaggio di programmazione per scopi generici può essere utilizzato per l'apprendimento automatico, sebbene quanto sia adatto allo scopo dipenderà da una serie di fattori, incluso lo scopo del lavoro con l'apprendimento automatico. Di quelli che citi, sia C # che Java sono linguaggi di programmazione generici, SQL e HTML + CSS non lo sono (esiterei a chiamarli linguaggi di programmazione, anche SQL è un linguaggio di query, HTML e CSS sono linguaggi di markup).

    
risposta data 12.07.2016 - 08:44
fonte
3

Usi la programmazione per costruire una macchina che può imparare senza che tu debba fare altre programmazioni. Usi la programmazione per costruire la mente della macchina. La mente continua ad apprendere cose che non sono state programmate ma apprese dall'esperienza.

Non è potente come un essere umano o anche una mente di formiche, ma ci sono molti problemi in informatica che sono notevolmente più facili da risolvere in questo modo.

    
risposta data 12.07.2016 - 09:08
fonte
2

Qui non c'è contraddizione. I programmi di Machine Learning possono apprendere autonomamente per arrivare a una soluzione, senza essere stati esplicitamente programmati per quella soluzione. Ma ovviamente, qualcuno deve scrivere i programmi di apprendimento automatico.

È esattamente la stessa di qualsiasi altro programma. Non è necessario conoscere la programmazione per utilizzare un browser Web, ma è necessario conoscere la programmazione per scrivere . Non è necessario conoscere la programmazione per utilizzare un editor di testo, ma è necessario conoscere la programmazione per scrivere . Allo stesso modo, non è necessario conoscere la programmazione per utilizzare un programma di apprendimento automatico, ma è necessario conoscere la programmazione per scrivere uno.

La sotto-discoscenza informatica di "Machine Learning" riguarda come scrivere programmi di Machine Learning.

    
risposta data 12.07.2016 - 16:06
fonte
0
  1. Ciò che sta dicendo è l'implementazione (o il prodotto) dell'apprendimento automatico fornisce al computer capacità di apprendimento. L'apprendimento automatico come oggetto di studio si concentra sullo sviluppo dell'implementazione di apprendimento automatico.

  2. Puoi usare linguaggi di programmazione generici (C #, Java, ecc.), forse puoi usare SQL (se ci provi con impegno) ma non HTML / CSS. Suppongo, dal momento che il data mining utilizza l'apprendimento automatico, è possibile utilizzare un'applicazione come WEKA.

  3. È una tecnica, puoi implementarla come preferisci.

risposta data 12.07.2016 - 08:46
fonte
0

In machine learning, si programma l'agente (il programma) per imparare come comportarsi / classificarsi senza che vengano specificate le regole esatte.

tale apprendimento può essere supervisionato, senza supervisione, online, rinforzato.

Nell'apprendimento supervisionato e rinforzato, si programma che questo agente da eseguire è il seguente:

  1. Valuta il suo successo / fallimento nel raggiungimento dell'obiettivo
  2. Tieni traccia delle sue azioni / classificazioni in base all'ambiente corrente
  3. Imparare gradualmente ad associare quelle azioni / classificazioni al premio / punteggio
  4. Lavora per massimizzare il punteggio / la ricompensa prendendo la decisione migliore

In genere, si definisce l'algoritmo di apprendimento nell'agente e gli si consente di esplorare in alcuni casi.

Vediamo il problema dall'inizio alla fine, supponiamo di avere un agente (programma AI) che abbia una tabella di stati, azioni, valori di ricompensa come il seguente

State/Actions    A    B   C   D       
State 1         -19   0   5   12 
State 2          2    10  -3  10 
State 3         100  -100  0   0

Se tu fossi l'agente e ti trovassi nello Stato 3, quale azione prenderesti? Prenderei l'azione A, per ottenere una ricompensa di 100, e eviterei l'azione B, per evitare di perdere 100

allo stesso modo, nello stato 1, l'azione migliore è D, e il peggiore è A

Quindi, se programmiamo il nostro agente per costruire tale tabella, sapremo cosa fare in ogni situazione.

Ci sono molti algoritmi là fuori per costruire questo tavolo, e si basano principalmente sulla matematica piuttosto che sulla programmazione.

Spero che la mia risposta sia stata abbastanza utile

    
risposta data 21.08.2017 - 23:05
fonte