{
  "id": 33724,
  "title": "Question about Pre-Trained models",
  "url": "/competitions/intel-mobileodt-cervical-cancer-screening/discussion/33724",
  "author_name": "",
  "post_date": "2017-05-28T15:44:49.892407400Z",
  "votes": null,
  "comment_count": 4,
  "views": 0,
  "content": "<p>Hi folks, I read that we can use \"pre-trained models\" like \"inception\".</p>\n\n<p>Could you teach me or point me somewhere so I can learn how a preteained model could be useful?</p>\n\n<p>From a bit of googling, I saw that inception is for categorizing certain images. How can that be helpful for this particular competition? \nI also found out about \"transfer learning\". Would that be the reason for using pre-trained models? If so, any particular site that you would recommend to learn more about it?\nThanks for sharing knowledge!</p>",
  "messages": [
    {
      "id": "186577",
      "postDate": "05/28/2017 15:44:49",
      "content": "<p>Hi folks, I read that we can use \"pre-trained models\" like \"inception\".</p>\n\n<p>Could you teach me or point me somewhere so I can learn how a preteained model could be useful?</p>\n\n<p>From a bit of googling, I saw that inception is for categorizing certain images. How can that be helpful for this particular competition? \nI also found out about \"transfer learning\". Would that be the reason for using pre-trained models? If so, any particular site that you would recommend to learn more about it?\nThanks for sharing knowledge!</p>",
      "rawMarkdown": "Hi folks, I read that we can use \"pre-trained models\" like \"inception\".\n\nCould you teach me or point me somewhere so I can learn how a preteained model could be useful?\n\nFrom a bit of googling, I saw that inception is for categorizing certain images. How can that be helpful for this particular competition? \nI also found out about \"transfer learning\". Would that be the reason for using pre-trained models? If so, any particular site that you would recommend to learn more about it?\nThanks for sharing knowledge!",
      "votes": null
    },
    {
      "id": "186588",
      "postDate": "05/28/2017 16:26:39",
      "content": "<p>Ok I just watched this video and I believe it answers my question:\n<a href=\"https://youtu.be/upfgTWrhkpg\">https://youtu.be/upfgTWrhkpg</a></p>",
      "rawMarkdown": "Ok I just watched this video and I believe it answers my question:\nhttps://youtu.be/upfgTWrhkpg",
      "votes": null
    },
    {
      "id": "186605",
      "postDate": "05/28/2017 17:18:29",
      "content": "<p>Hi @Carlos, for this competition you can take an existing model such as Inception/VGG/etc... and retrain it with the images appropriate for this competition (i.e. the cervix dataset). In that respect, you would be using those models but not their pre-trained weights. As you rightly suspect, those weights are appropriate for the image dataset they were trained on which wouldn't work well with the cervix image dataset. The reason why you may want to use these models is of course because they are models that have been researched well and proven to work well for image recognition.</p>",
      "rawMarkdown": "Hi @Carlos, for this competition you can take an existing model such as Inception/VGG/etc... and retrain it with the images appropriate for this competition (i.e. the cervix dataset). In that respect, you would be using those models but not their pre-trained weights. As you rightly suspect, those weights are appropriate for the image dataset they were trained on which wouldn't work well with the cervix image dataset. The reason why you may want to use these models is of course because they are models that have been researched well and proven to work well for image recognition.",
      "votes": null
    },
    {
      "id": "186607",
      "postDate": "05/28/2017 17:20:52",
      "content": "<p>Hi, more than one topic here. To touch this topics it is necessary to have some basic knowledge of <strong>CNNs</strong> (convolutional neural networks).</p>\n\n<p>So, about \"<strong>pretraining</strong>\";  Convnets are powerful but to learn they need enough data and quite a lot of time/processing power. The way they work they learn from \"raw\" data/pixels, to more and more complex/abstract features. But, in the beginning of their learning process, convnets usually learn similar things: borders, lines orientation, edges... So, the rationale of \"pretraining\" is, you  \"cut\" one of this famous, already trained convnets that are of public domain. You take the first part of it, with the weights that probably are already detecting shapes, edges...etc. And then you continue training your own convnet, with your own architecture on your data.\nThe reason for all this? <strong>You save time, and you save data</strong>. AFAIK, if you have enough data and computing power you will not increase your accuracy with pretraining.</p>\n\n<p>Inception refers to an specific architecture, and also to an specific layer this architecture uses to manipulate  filter depth with kernels 1x1.</p>\n\n<p>In this contest data is not enough if you use only what is supplied, so you can consider pretraining, data augmentation or both.</p>",
      "rawMarkdown": "Hi, more than one topic here. To touch this topics it is necessary to have some basic knowledge of **CNNs** (convolutional neural networks).\n\nSo, about \"**pretraining**\";  Convnets are powerful but to learn they need enough data and quite a lot of time/processing power. The way they work they learn from \"raw\" data/pixels, to more and more complex/abstract features. But, in the beginning of their learning process, convnets usually learn similar things: borders, lines orientation, edges... So, the rationale of \"pretraining\" is, you  \"cut\" one of this famous, already trained convnets that are of public domain. You take the first part of it, with the weights that probably are already detecting shapes, edges...etc. And then you continue training your own convnet, with your own architecture on your data.\nThe reason for all this? **You save time, and you save data**. AFAIK, if you have enough data and computing power you will not increase your accuracy with pretraining.\n\nInception refers to an specific architecture, and also to an specific layer this architecture uses to manipulate  filter depth with kernels 1x1.\n\nIn this contest data is not enough if you use only what is supplied, so you can consider pretraining, data augmentation or both.",
      "votes": null
    },
    {
      "id": "186626",
      "postDate": "05/28/2017 18:23:09",
      "content": "<p>Thanks folks! Things make a lot of sense now. Would it be accurate that then using a preexisting model applies only to neural networks? (Or CNNS) as you would retrain the last layer? Or does the concept applies to other algorithms like SVMs or Trees?</p>",
      "rawMarkdown": "Thanks folks! Things make a lot of sense now. Would it be accurate that then using a preexisting model applies only to neural networks? (Or CNNS) as you would retrain the last layer? Or does the concept applies to other algorithms like SVMs or Trees?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 186588,
      "author_name": "carlosaguayo",
      "author_url": "",
      "post_date": "05/28/2017 16:26:39",
      "content": "<p>Ok I just watched this video and I believe it answers my question:\n<a href=\"https://youtu.be/upfgTWrhkpg\">https://youtu.be/upfgTWrhkpg</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 186605,
      "author_name": "bk0000",
      "author_url": "",
      "post_date": "05/28/2017 17:18:29",
      "content": "<p>Hi @Carlos, for this competition you can take an existing model such as Inception/VGG/etc... and retrain it with the images appropriate for this competition (i.e. the cervix dataset). In that respect, you would be using those models but not their pre-trained weights. As you rightly suspect, those weights are appropriate for the image dataset they were trained on which wouldn't work well with the cervix image dataset. The reason why you may want to use these models is of course because they are models that have been researched well and proven to work well for image recognition.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 186607,
      "author_name": "miguelpm",
      "author_url": "",
      "post_date": "05/28/2017 17:20:52",
      "content": "<p>Hi, more than one topic here. To touch this topics it is necessary to have some basic knowledge of <strong>CNNs</strong> (convolutional neural networks).</p>\n\n<p>So, about \"<strong>pretraining</strong>\";  Convnets are powerful but to learn they need enough data and quite a lot of time/processing power. The way they work they learn from \"raw\" data/pixels, to more and more complex/abstract features. But, in the beginning of their learning process, convnets usually learn similar things: borders, lines orientation, edges... So, the rationale of \"pretraining\" is, you  \"cut\" one of this famous, already trained convnets that are of public domain. You take the first part of it, with the weights that probably are already detecting shapes, edges...etc. And then you continue training your own convnet, with your own architecture on your data.\nThe reason for all this? <strong>You save time, and you save data</strong>. AFAIK, if you have enough data and computing power you will not increase your accuracy with pretraining.</p>\n\n<p>Inception refers to an specific architecture, and also to an specific layer this architecture uses to manipulate  filter depth with kernels 1x1.</p>\n\n<p>In this contest data is not enough if you use only what is supplied, so you can consider pretraining, data augmentation or both.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 186626,
      "author_name": "carlosaguayo",
      "author_url": "",
      "post_date": "05/28/2017 18:23:09",
      "content": "<p>Thanks folks! Things make a lot of sense now. Would it be accurate that then using a preexisting model applies only to neural networks? (Or CNNS) as you would retrain the last layer? Or does the concept applies to other algorithms like SVMs or Trees?</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "186577": "Hi folks, I read that we can use \"pre-trained models\" like \"inception\".\n\nCould you teach me or point me somewhere so I can learn how a preteained model could be useful?\n\nFrom a bit of googling, I saw that inception is for categorizing certain images. How can that be helpful for this particular competition? \nI also found out about \"transfer learning\". Would that be the reason for using pre-trained models? If so, any particular site that you would recommend to learn more about it?\nThanks for sharing knowledge!",
    "186588": "Ok I just watched this video and I believe it answers my question:\nhttps://youtu.be/upfgTWrhkpg",
    "186605": "Hi @Carlos, for this competition you can take an existing model such as Inception/VGG/etc... and retrain it with the images appropriate for this competition (i.e. the cervix dataset). In that respect, you would be using those models but not their pre-trained weights. As you rightly suspect, those weights are appropriate for the image dataset they were trained on which wouldn't work well with the cervix image dataset. The reason why you may want to use these models is of course because they are models that have been researched well and proven to work well for image recognition.",
    "186607": "Hi, more than one topic here. To touch this topics it is necessary to have some basic knowledge of **CNNs** (convolutional neural networks).\n\nSo, about \"**pretraining**\";  Convnets are powerful but to learn they need enough data and quite a lot of time/processing power. The way they work they learn from \"raw\" data/pixels, to more and more complex/abstract features. But, in the beginning of their learning process, convnets usually learn similar things: borders, lines orientation, edges... So, the rationale of \"pretraining\" is, you  \"cut\" one of this famous, already trained convnets that are of public domain. You take the first part of it, with the weights that probably are already detecting shapes, edges...etc. And then you continue training your own convnet, with your own architecture on your data.\nThe reason for all this? **You save time, and you save data**. AFAIK, if you have enough data and computing power you will not increase your accuracy with pretraining.\n\nInception refers to an specific architecture, and also to an specific layer this architecture uses to manipulate  filter depth with kernels 1x1.\n\nIn this contest data is not enough if you use only what is supplied, so you can consider pretraining, data augmentation or both.",
    "186626": "Thanks folks! Things make a lot of sense now. Would it be accurate that then using a preexisting model applies only to neural networks? (Or CNNS) as you would retrain the last layer? Or does the concept applies to other algorithms like SVMs or Trees?"
  },
  "source": "meta"
}