{
  "id": 12762,
  "title": "Approaching the problem",
  "url": "/competitions/diabetic-retinopathy-detection/discussion/12762",
  "author_name": "",
  "post_date": "2015-03-10T19:52:58.647Z",
  "votes": 1,
  "comment_count": 4,
  "views": 3251,
  "content": "<p>Hi,</p>\n<p>It would be great to get some guidance on this problem since I've not really worked with image classification before. I read up on the topic(went through some old Kaggle Competitions/research material) and gathered that the following approach should be feasible:</p>\n<p>Preprocessing Images: Converting Colospace,Scaling down images, Data Augmentation, ZCA Whitening, PCA</p>\n<p>Classification : Since the data is massive, I doubt it would fit in 16GB RAM unless its really scaled down which would then be a trade off for poorer features. So an Online CNN seems to be the best way to go about it? Or am I mistaken in which case RFs can be considered?</p>\n<p>What are your suggestions. Am I on the right track?</p>\n<p>Thanks</p>",
  "messages": [
    {
      "id": "65911",
      "postDate": "03/10/2015 19:52:58",
      "content": "<p>Hi,</p>\n<p>It would be great to get some guidance on this problem since I've not really worked with image classification before. I read up on the topic(went through some old Kaggle Competitions/research material) and gathered that the following approach should be feasible:</p>\n<p>Preprocessing Images: Converting Colospace,Scaling down images, Data Augmentation, ZCA Whitening, PCA</p>\n<p>Classification : Since the data is massive, I doubt it would fit in 16GB RAM unless its really scaled down which would then be a trade off for poorer features. So an Online CNN seems to be the best way to go about it? Or am I mistaken in which case RFs can be considered?</p>\n<p>What are your suggestions. Am I on the right track?</p>\n<p>Thanks</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65958",
      "postDate": "03/11/2015 13:29:41",
      "content": "<p>Not too sure how can i even get started either, it seems that there is one Kaggle user who has started to load the files through R</p>\n<p>https://www.kaggle.com/c/diabetic-retinopathy-detection/forums/t/12591/feature-engineering-and-file-processing-starter-code-in-r</p>\n<p>Seems like it might take a huge desktop computer constantly running to extract, and we have not even reach the processsing / training stage yet.</p>\n<p>I have found research papers online but they have usually stuck to something like 500 images.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65965",
      "postDate": "03/11/2015 16:02:00",
      "content": "<h2><strong>R with parallel processing</strong></h2>\n<p><strong>Michael:</strong></p>\n<p>I posted the R code because that's what I started with. I can speed things up a little bit using parallel processing, but had to seriously, seriously look at whether R is best for implementation. I made the initial choice because I had independently implemented the Fast Fourier Transform method of convolution for another application.</p>\n<p>I used R to have a look at a few statistics on image size and then experimented with PCA to reduce the dimensionality and enhance contrast. The code was also my first step in reducing the image size or subsampling each image.</p>\n<p>The &quot;branch&quot; in logic after my exploratory phase was to:</p>\n<ol>\n<li>process the images to derive and engineer features for use in Random Forests, similar to previous implementations using R (pros - desktop computing in R, cons - poor performance)</li>\n<li>subsample the images and go with the CNN approach in cxxnet/Python (pros - better performance, cons - greater computing requirements),</li>\n</ol>\n<p>I am still using R to test and tune algorithms with a sample of images, but am using cxxnet/Python for the heavy lifting.</p>\n<p>Have a look at&nbsp;<a href=\"https://github.com/antinucleon/cxxnet\">github.com/antinucleon/cxxnet</a> and see if you can find an NVIDIA GTX580, 3MBy to jazz up your computing power. It should be the best price point for performance/price</p>\n<p>Thanks, Alastair</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65981",
      "postDate": "03/11/2015 20:47:13",
      "content": "<p>This is the first kaggle competition I've participated in. &nbsp;I think it's interesting that people aren't using the fairly extensive existing literature on domain-specific approaches to diabetic retinopathy detection. &nbsp;How has that worked in past competitions? &nbsp;Does just throwing the whole data set at the right ML algorithm usually get the best results?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66087",
      "postDate": "03/13/2015 09:47:09",
      "content": "<p>I am trying to make predictions with convolutional neural networks. I am using&nbsp;<a href=\"http://caffe.berkeleyvision.org/\">caffe library</a>&nbsp;and have <a href=\"http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-980/specifications\">GeForce GTX 980</a>&nbsp;card. If anyone is thinking about using GPU I highly recommend this one.</p>\n<p>I have resized all images to 1024 x 1024 and augmented the dataset by cropping random patches of size 227 x 227 (arbitrary choice)</p>\n<p>Unfortunately so far I haven't managed to achieve accuracy higher than 0.3.</p>\n<p>Right now I try to determine the number and size of convolutional filters to analyze the images.</p>\n<p>If anyone is interested, I am willing to join the team.</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 65958,
      "author_name": "razorwind",
      "author_url": "",
      "post_date": "03/11/2015 13:29:41",
      "content": "<p>Not too sure how can i even get started either, it seems that there is one Kaggle user who has started to load the files through R</p>\n<p>https://www.kaggle.com/c/diabetic-retinopathy-detection/forums/t/12591/feature-engineering-and-file-processing-starter-code-in-r</p>\n<p>Seems like it might take a huge desktop computer constantly running to extract, and we have not even reach the processsing / training stage yet.</p>\n<p>I have found research papers online but they have usually stuck to something like 500 images.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65965,
      "author_name": "alastairk",
      "author_url": "",
      "post_date": "03/11/2015 16:02:00",
      "content": "<h2><strong>R with parallel processing</strong></h2>\n<p><strong>Michael:</strong></p>\n<p>I posted the R code because that's what I started with. I can speed things up a little bit using parallel processing, but had to seriously, seriously look at whether R is best for implementation. I made the initial choice because I had independently implemented the Fast Fourier Transform method of convolution for another application.</p>\n<p>I used R to have a look at a few statistics on image size and then experimented with PCA to reduce the dimensionality and enhance contrast. The code was also my first step in reducing the image size or subsampling each image.</p>\n<p>The &quot;branch&quot; in logic after my exploratory phase was to:</p>\n<ol>\n<li>process the images to derive and engineer features for use in Random Forests, similar to previous implementations using R (pros - desktop computing in R, cons - poor performance)</li>\n<li>subsample the images and go with the CNN approach in cxxnet/Python (pros - better performance, cons - greater computing requirements),</li>\n</ol>\n<p>I am still using R to test and tune algorithms with a sample of images, but am using cxxnet/Python for the heavy lifting.</p>\n<p>Have a look at&nbsp;<a href=\"https://github.com/antinucleon/cxxnet\">github.com/antinucleon/cxxnet</a> and see if you can find an NVIDIA GTX580, 3MBy to jazz up your computing power. It should be the best price point for performance/price</p>\n<p>Thanks, Alastair</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65981,
      "author_name": "alexcoventry",
      "author_url": "",
      "post_date": "03/11/2015 20:47:13",
      "content": "<p>This is the first kaggle competition I've participated in. &nbsp;I think it's interesting that people aren't using the fairly extensive existing literature on domain-specific approaches to diabetic retinopathy detection. &nbsp;How has that worked in past competitions? &nbsp;Does just throwing the whole data set at the right ML algorithm usually get the best results?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66087,
      "author_name": "nikogamulin",
      "author_url": "",
      "post_date": "03/13/2015 09:47:09",
      "content": "<p>I am trying to make predictions with convolutional neural networks. I am using&nbsp;<a href=\"http://caffe.berkeleyvision.org/\">caffe library</a>&nbsp;and have <a href=\"http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-980/specifications\">GeForce GTX 980</a>&nbsp;card. If anyone is thinking about using GPU I highly recommend this one.</p>\n<p>I have resized all images to 1024 x 1024 and augmented the dataset by cropping random patches of size 227 x 227 (arbitrary choice)</p>\n<p>Unfortunately so far I haven't managed to achieve accuracy higher than 0.3.</p>\n<p>Right now I try to determine the number and size of convolutional filters to analyze the images.</p>\n<p>If anyone is interested, I am willing to join the team.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "65911": "",
    "65958": "",
    "65965": "",
    "65981": "",
    "66087": ""
  },
  "source": "meta"
}