Answers.Body: <p>If I understand what you mean correctly then the answer is <em>basically nothing</em>. Fundamentlaly all ML algorithms are ding the same thing, which is to optimize some weights for a certain output (this is true even for non-parametric methods in an implict way, but lets not dive too deep here). The only differences are:</p>
  <ol>
  <li>Dataset the model is trained on</li>
  <li>Specific dimensionality of inputs and outputs to make them compatible with the input data and the output labels.</li>
  <li>Complexity that can be expressed by the model (the number of weights and their structure in layers in the case of Neural Networks).</li>
  <li>Changes to the optimization process (gradient clipping, regularization, ecc.)</li>
  <li>Structural changes to the architecture that embed assumptions about the specific problem setting (e.g. 2D-Convulutions embed assumptions for images, softmax activations embeds the assumption for classification with probabilities, hidden states embed the assumptions about memory and &quot;fogetting&quot;, ecc...)</li>
  </ol>
  <p>Therefore, if you have a &quot;similar&quot; problem setting where you can assume that 3, 4, 5 can be the same without problems, then you can just make the appropriate changes in 2 and change the dataset (1) to get a model that works on something different.</p>
  <p>Of course, being able to tell how &quot;similar&quot; a problem is to another and what possible things could be different is quite tricky and requires a lot of knowledge about the domain of Machine Learning and how every algorithm works and why.</p>
  <p>In essence, I'm saying that in principle you could take a model and train it for a new setting with very minor and simple changes that don't require a lot of knowledge. However, without the wider knowledge on the field of ML/AI you won't be able to tell if what you are doing is ok and how well can it work in general.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-12-13T22:48:07.700Z
Answers.Text: Ah, interesting, thank you for the answer. So I'm assuming that I can't really go around learning the details of each of these steps in order to judge where I can "order" my task into? Do you have a recommendation on what learning approach would be best?
Answers.UserDisplayName: Fly
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-12-12T10:26:35.283Z
Answers.LastActivityDate: 2020-12-12T10:26:35.283Z
Answers.UserDisplayName: Federico Malerba
Body: <p>(Disclaimer: I don't know much about ML/AI, besides some basic ideas behind it all.)</p>
  <p>It seems like ML/AI models can often be boiled down to statistics, where certain levers (weights) get fine-tuned based on the specific input of a large set of training data.</p>
  <p>Clearly, ML/AI models don't only distinguish themselves in their training data alone, otherwise there would not be so many improvements happening in the field all the time. My question therefore is: What <em>does</em> distinguish different models of the same category?</p>
  <p>If I have an AI that completes real-life pictures that have some missing parts, and an AI that completes a painting with missing parts, what key concepts separates the two?</p>
  <p>If I have an AI detecting text in an image, and an AI detecting... trees in an image, what key concepts separates the two?</p>
  <p>In other words, what is stopping me from &quot;taking&quot; an existing implementation of a certain AI category, and just feeding it my specific training set + rewards (i.e. judgement criteria for good vs bad output), in order to solve a specific task?</p>
  <p>In yet again other words, if I wanted to use ML/AI to build a new model for a specific task, what concepts and topics would I need to pay extra attention to? (I guess you could say I'm trying to reverse engineer the learning process of the field here. I don't have the time to properly teach myself and become an &quot;expert&quot;, but find it all very interesting and would still like to <em>use</em> some of the wonderful things people have done.)</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-10T15:09:02.593Z
Comments.Text: @nbro Thank you for your answer. I read the answers you linked, and think that I was already aware of those "generalities"; What I'm trying to ask, I guess, is, for a GIVEN model, in what steps of a complete algorithm do two different tasks differ. For example, take two image inpainting tasks, getting rid of wrinkles and removing an object. Both will use a similar model/approach, but what I want to know is what makes them different: Say, if I were given one of the two algorithms, what would I have to change to produce the other?
Comments.UserDisplayName: Fly
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-10T16:26:54.900Z
Comments.Text: But there are so many possible differences between a model/solution and another. For example, the number of layers, the number of units, the optimizer, etc., etc., that you use in one case could be different than in another. Or maybe the model is completely different, the data is different. So, I think you should really focus on a more specific problem and ask a more specific question, because, right now, I don't think this question can be reasonably answered.
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-10T01:30:53.500Z
Comments.Text: I don't fully understand what you mean by this "ML/AI models don't only distinguish themselves in their training data alone". Are you saying that ML models are not only different in terms of the data they need to deal with (in terms of inputs and outputs)? This post is a bit problematic, because, even though you do not realise it, you're asking us to describe what machine learning is and which types of machine learning are there, from what I understand.
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-10T01:34:51.680Z
Comments.Text: If you're looking for different types of machine learning technique, maybe you should start from [this](https://ai.stackexchange.com/a/4710/2444) or [this](https://ai.stackexchange.com/a/12559/2444) answers. I suggest that you read those answers carefully, then try to narrow the scope of this post. Right now, it's broad, because essentially you're asking us how to solve problem with machine learning. I suggest that, as an example, you focus on a specific problem that you would like to solve, then ask a more specific question.
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-12-10T01:35:13.940Z
Comments.Text: Moreover, note that AI and ML are not the same thing. ML is a subfield of AI concerned with learning from data, as you will understand after having read the answers I linked you to, which you should really read before proceeding.
Comments.UserDisplayName: nbro
Tags: <machine-learning><reinforcement-learning><models><unsupervised-learning><supervised-learning>
Title: Aside from specific training sets, what distinguishes the capabilities of different AI implementations?
UserDisplayName: Fly
ThreadText: # Aside from specific training sets, what distinguishes the capabilities of different AI implementations?
  
  (Asked by: username_0 on 2020-12-09)
  
  (Disclaimer: I don't know much about ML/AI, besides some basic ideas behind it all.)
  
  It seems like ML/AI models can often be boiled down to statistics, where certain levers (weights) get fine-tuned based on the specific input of a large set of training data.
  
  Clearly, ML/AI models don't only distinguish themselves in their training data alone, otherwise there would not be so many improvements happening in the field all the time. My question therefore is: What *does* distinguish different models of the same category?
  
  If I have an AI that completes real-life pictures that have some missing parts, and an AI that completes a painting with missing parts, what key concepts separates the two?
  
  If I have an AI detecting text in an image, and an AI detecting... trees in an image, what key concepts separates the two?
  
  In other words, what is stopping me from "taking" an existing implementation of a certain AI category, and just feeding it my specific training set + rewards (i.e. judgement criteria for good vs bad output), in order to solve a specific task?
  
  In yet again other words, if I wanted to use ML/AI to build a new model for a specific task, what concepts and topics would I need to pay extra attention to? (I guess you could say I'm trying to reverse engineer the learning process of the field here. I don't have the time to properly teach myself and become an "expert", but find it all very interesting and would still like to *use* some of the wonderful things people have done.)
  
  **Tags:** machine-learning, reinforcement-learning, models, unsupervised-learning, supervised-learning
  > **Comments:**
  > **username_1**: I don't fully understand what you mean by this "ML/AI models don't only distinguish themselves in their training data alone". Are you saying that ML models are not only different in terms of the data they need to deal with (in terms of inputs and outputs)? This post is a bit problematic, because, even though you do not realise it, you're asking us to describe what machine learning is and which types of machine learning are there, from what I understand.  
  > **username_1**: If you're looking for different types of machine learning technique, maybe you should start from [this](https://ai.stackexchange.com/a/4710/2444) or [this](https://ai.stackexchange.com/a/12559/2444) answers. I suggest that you read those answers carefully, then try to narrow the scope of this post. Right now, it's broad, because essentially you're asking us how to solve problem with machine learning. I suggest that, as an example, you focus on a specific problem that you would like to solve, then ask a more specific question.  
  > **username_1**: Moreover, note that AI and ML are not the same thing. ML is a subfield of AI concerned with learning from data, as you will understand after having read the answers I linked you to, which you should really read before proceeding.  
  > **username_0**: @nbro Thank you for your answer. I read the answers you linked, and think that I was already aware of those "generalities"; What I'm trying to ask, I guess, is, for a GIVEN model, in what steps of a complete algorithm do two different tasks differ. For example, take two image inpainting tasks, getting rid of wrinkles and removing an object. Both will use a similar model/approach, but what I want to know is what makes them different: Say, if I were given one of the two algorithms, what would I have to change to produce the other?  
  > **username_1**: But there are so many possible differences between a model/solution and another. For example, the number of layers, the number of units, the optimizer, etc., etc., that you use in one case could be different than in another. Or maybe the model is completely different, the data is different. So, I think you should really focus on a more specific problem and ask a more specific question, because, right now, I don't think this question can be reasonably answered.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2020-12-12. Score: 1
  
  If I understand what you mean correctly then the answer is *basically nothing*. Fundamentlaly all ML algorithms are ding the same thing, which is to optimize some weights for a certain output (this is true even for non-parametric methods in an implict way, but lets not dive too deep here). The only differences are:
  
  1. Dataset the model is trained on
  2. Specific dimensionality of inputs and outputs to make them compatible with the input data and the output labels.
  3. Complexity that can be expressed by the model (the number of weights and their structure in layers in the case of Neural Networks).
  4. Changes to the optimization process (gradient clipping, regularization, ecc.)
  5. Structural changes to the architecture that embed assumptions about the specific problem setting (e.g. 2D-Convulutions embed assumptions for images, softmax activations embeds the assumption for classification with probabilities, hidden states embed the assumptions about memory and "fogetting", ecc...)
  
  Therefore, if you have a "similar" problem setting where you can assume that 3, 4, 5 can be the same without problems, then you can just make the appropriate changes in 2 and change the dataset (1) to get a model that works on something different.
  
  Of course, being able to tell how "similar" a problem is to another and what possible things could be different is quite tricky and requires a lot of knowledge about the domain of Machine Learning and how every algorithm works and why.
  
  In essence, I'm saying that in principle you could take a model and train it for a new setting with very minor and simple changes that don't require a lot of knowledge. However, without the wider knowledge on the field of ML/AI you won't be able to tell if what you are doing is ok and how well can it work in general.
  
  > **Comments:**
  > **username_0**: Ah, interesting, thank you for the answer. So I'm assuming that I can't really go around learning the details of each of these steps in order to judge where I can "order" my task into? Do you have a recommendation on what learning approach would be best?  
  
  ---
  
  