1

I am old to programming and very beginner to Machine Learning and what make me surprise is the defination as i typed in google i found this.

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.

Confusions are:

  1. At first it states it enable computer to learn without explicit program later it said it is the development of program? What the heck is that?

  2. I know C#, Java, SQL, HTML/CSS can I not use these programming in Machine learning or what else it is, if it is not programming? or it is programming.?

  3. Do it require any other language if it is programming

11

First of all, it seems to me you are missing (or perhaps misunderstanding) the "explicitly" bit in "without being explicitly programmed" (from the quote in the question).

It doesn't mean that no programming is required at all, it means that you are not programming a specific solution to the problem, but instead what you are making is a more general program that can, with the right parameters, solve the problem, and also a way for the program to update its parameters in order to arrive to the solution (that's the learning part).

Second, any general purpose programming language can be used for machine learning, though how suited it is to the purpose would depend on a number of factors, including your purpose in working with machine learning. Of those you cite, both C# and Java are general purpose programming languages, SQL and HTML+CSS are not (I would hesitate to call them programming languages, even. SQL is a query language, HTML and CSS are markup languages).

3

You use programming to build a machine that can learn without you having to do any more programming. You use programming to build the machines mind. The mind goes on to learn things that were not programmed into it but learned by experience.

It's not as powerful as a humans or even an ants mind, but there are many problems in computer science that are considerably easier to solve this way.

  • Not as powerful as humans? Professional chess players practice against ML software. Scientists have developed ML software that has mastered chess and even (arguably) Go! There are some areas that ML is far superior to the human mind (e.g. learning from very new information), but ML certainly deserves more credit than what you suggest. – Charles Jun 18 '17 at 0:19
2

There is no contradiction here. Machine Learning Programs can learn by themselves to arrive at a solution, without having been explicitly programmed for that solution. But of course, someone has to write the Machine Learning Programs.

It's exactly the same as with any other program. You don't need to know programming to use a web browser, but you do need to know programming to write one. You don't need to know programming to use a text editor, but you do need to know programming to write one. Likewise, you don't need to know programming to use a Machine Learning Program, but you do need to know programming to write one.

The computer science sub-discpline of "Machine Learning" is concerned with how to write Machine Learning Programs.

0
  1. What it's saying is implementation (or product) of machine learning provides computer with ability to learn. Machine learning as subject of study focuses on the development of the machine learning implementation.

  2. You can use general purpose programming languages (C#, Java, etc.), maybe you can use SQL (if you try hard) but not HTML/CSS. I suppose, since data mining uses machine learning, you can use application like WEKA.

  3. It's a technique, you can implement it anyway you like.

  • so your saying that there are other way available to do ML other then programming – Muhammad Faizan Khan Jul 12 '16 at 6:57
  • Yes, e.g. C4.5 is one technique, but it'd be a hassle to code in C just to try to use it. So, you can use Weka, which have a java implementation for that (J48). All you need is to prepare some input data. – imel96 Jul 12 '16 at 7:08
0

In machine learning, you program the agent (the program) to learn how to act/classify without being told the exact rules.

such learning can either be supervised, unsupervised, online, reinforced.

In supervised and reinforcement learning, you program this agent to do is the following:

  1. Evaluate its success/failure in achieving the goal
  2. Keep track of its actions/classifications based on the current environment
  3. Gradually learn to associate those actions/classifications to the reward/score
  4. Work on maximizing its score/reward by making the best decision

Typically, you define the learning algorithm in the agent, and allow it to explore in some cases.

Let us look at the problem from end to beginning, let us assume that we have an agent (AI program) that has a table of states, actions, reward values like the following

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

If you were the agent, and you found yourself in State 3, what action would you take? I would take action A, to gain a reward of 100, and I would avoid action B, to avoid losing 100

similarly, in state 1, best action is D, and worst is A

So, if we programmed our agent to build such table, it will know what to do in each situation.

There are many algorithms out there to build this table, and they mainly rely on mathematics rather than on programming.

I hope my answer was useful enough

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.