{"id":3465,"date":"2026-02-12T11:13:00","date_gmt":"2026-02-12T10:13:00","guid":{"rendered":"https:\/\/neuraldesigner.com\/learning\/banknote-authentication\/"},"modified":"2026-03-10T15:16:26","modified_gmt":"2026-03-10T14:16:26","slug":"banknote-authentication","status":"publish","type":"blog","link":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/","title":{"rendered":"Detect forged banknotes using machine learning"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3465\" class=\"elementor elementor-3465\" data-elementor-post-type=\"blog\">\n\t\t\t\t<div class=\"elementor-element elementor-element-266f397 e-flex e-con-boxed e-con e-parent\" data-id=\"266f397\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f25f04f elementor-widget elementor-widget-text-editor\" data-id=\"f25f04f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>This example builds a machine learning model to detect forged banknotes accurately. For that, we use a<span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight );\">\u00a0set of images taken from genuine and forged banknote-like specimens. Features such as wavelet variance, skewness, kurtosis, and image entropy are extracted from the images.<\/span><\/p><section>The final accuracy obtained by this method is 100% on an independent testing set.<\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb32228 elementor-widget elementor-widget-text-editor\" data-id=\"fb32228\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3>Contents:<\/h3><ol><li><a href=\"#ApplicationType\">Application type<\/a>.<\/li><li><a href=\"#DataSet\">Data set<\/a>.<\/li><li><a href=\"#NeuralNetwork\">Neural network<\/a>.<\/li><li><a href=\"#TrainingStrategy\">Training strategy<\/a>.<\/li><li><a href=\"#ModelSelection\">Model selection<\/a>.<\/li><li><a href=\"#TestingAnalysis\">Testing analysis<\/a>.<\/li><li><a href=\"#ModelDeployment\">Model deployment<\/a>.<\/li><li><a href=\"#Conclusions\">Conclusions<\/a>.<\/li><\/ol><p>This example is solved with <a href=\"https:\/\/www.neuraldesigner.com\/\">Neural Designer<\/a>. To follow it step by step, you can download the software.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-92ad3b9 e-con-full e-flex e-con e-child\" data-id=\"92ad3b9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5cc622b elementor-align-center elementor-widget elementor-widget-button\" data-id=\"5cc622b\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.neuraldesigner.com\/downloads\/\" id=\"download\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-36e6ce8d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"36e6ce8d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6991b802\" data-id=\"6991b802\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-743e74d5 elementor-widget elementor-widget-text-editor\" data-id=\"743e74d5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section><h2>1. Application type<\/h2><\/section><section><p>This is a <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-networks-applications#Classification\">classification<\/a> project since the variable to be predicted is binary (fraudulent or legal).<\/p><p>The goal is to model the probability that a banknote is fraudulent as its features function.<\/p><\/section><section><h2>2. Data set<\/h2><p>The data file <a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/10\/banknote_authentication.csv\">banknote_authentication.csv<\/a> is the source of information for the classification problem. The number of instances (rows) in the data set is 1372, and the number of variables (columns) is 5.<\/p><p>In that way, this problem has the following <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#Variables\">variables<\/a>:<\/p><ul><li><strong>variance_of_wavelet_transformed<\/strong>, used as input.<\/li><li><strong>skewness_of_wavelet_transformed<\/strong>, used as input.<\/li><li><strong>curtosis_of_wavelet_transformed<\/strong>, used as input.<\/li><li><strong>entropy_of_image<\/strong>, used as input.<\/li><li><strong>counterfeit<\/strong>, used as the target. It can only have two values: 0 (non-counterfeit) or 1 (counterfeit).<\/li><\/ul><p>The <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#Instances\">instances<\/a> are divided into training, selection, and testing subsets. There are 824 instances for training (60%), 274 cases for selection (20%), and 274 cases for testing (20%).<\/p><p>We can calculate the data <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#Distributions\">distributions<\/a> and plot a pie chart with the percentage of instances for each class.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/banknote-authentication-data-distribution.webp\" alt=\"\" \/><\/p><p>We can see that the numbers of authentic and forged banknotes are similar.<\/p><p>Next, we plot a <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#ScatterCharts\">scatter chart<\/a> with the counterfeit and the wavelet transformed variance data.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/banknote-authentication-scatter-chart.webp\" alt=\"\" \/><\/p><p>In general, the more wavelet transformed variance, the less counterfeit probability.<\/p><p>The <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#InputsTargetsCorrelations\">inputs-targets correlations<\/a> might indicate which factors better discriminate between authentic and false banknotes.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/banknote-authentication-inputs-targets-correlations.webp\" alt=\"\" \/><\/p><p>The above chart shows that the wavelet transformed variance might be the most influential variable for this application.<\/p><\/section><section><h2>3. Neural network<\/h2><p>The second step is configuring a <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a> to represent the classification function.<\/p><p>The following picture shows the neural network that defines the model.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/banknote-authentication-initial-neural-network.webp\" alt=\"\" \/><\/p><\/section><section><h2>4. Training strategy<\/h2><p>The fourth step is to set the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy\">training strategy<\/a>, which is composed of:<\/p><ul><li>Loss index.<\/li><li>Optimization algorithm.<\/li><\/ul><p>The <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#LossIndex\">loss index<\/a> that we use is the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#WeightedSquaredError\">weighted squared error<\/a> with <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#L2Regularization\">L2 regularization<\/a>.<\/p><p>We can state the learning problem as finding a neural network that minimizes the loss index. That is, we want a neural network that fits the data set (<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">error term<\/a>), and that does not oscillate (<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#RegularizationTerm\">regularization term<\/a>).<\/p><p>We use here the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#QuasiNewtonMethod\">quasi-Newton method<\/a> as the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#OptimizationAlgorithm\">optimization algorithm<\/a>. The default training parameters, stopping criteria, and training history settings are left.<\/p><p>The following figure shows the loss history with the quasi-Netwon method. As we can see, the loss decreases until it reaches a stationary value. This is a sign of convergence.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/banknote-authentication-training-history.webp\" alt=\"\" \/><\/p><p>The final training and selection errors are almost zero, which means the neural network fits the data well.<\/p><p>More specifically, <strong>training error = 0.014 WSE<\/strong> and <strong>selection error = 0.011 WSE<\/strong>.<\/p><\/section><section><h2>5. Model selection<\/h2><p>The objective of <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection\">model selection<\/a> is to improve the neural network&#8217;s generalization capabilities or, in other words, to reduce the selection error.<\/p><p>Since the selection error we have achieved so far is minimal (0.011 WSE), there is no need to apply an order or\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#InputsSelection\">input selection<\/a>.<\/p><\/section><section><h2>6. Testing analysis<\/h2><p>The <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/testing-analysis\">testing analysis<\/a> aims to validate the generalization performance of the trained neural network.<\/p><p>A good measure for the precision of a binary classification model is the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/testing-analysis#RocCurve\">ROC curve<\/a>.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/banknote-authentication-roc-curve.webp\" alt=\"\" \/><\/p><p>The area under the model&#8217;s curve is <strong>AUC = 1<\/strong>, which means that the classifier predicts all the testing instances well.<\/p><p>In the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/testing-analysis#ConfusionMatrix\">confusion matrix<\/a>, the rows represent the target classes, and the columns the output classes for the testing target data set. The diagonal cells in each table show the number of correctly classified cases, and the off-diagonal cells show the misclassified instances. The following table contains the elements of the confusion matrix.<\/p><div style=\"overflow-x: auto;\"><table><tbody><tr><th>\u00a0<\/th><th>Predicted positive<\/th><th>Predicted negative<\/th><\/tr><tr><th>Real positive<\/th><td style=\"text-align: right;\">103<\/td><td style=\"text-align: right;\">0<\/td><\/tr><tr><th>Real negative<\/th><td style=\"text-align: right;\">0<\/td><td style=\"text-align: right;\">171<\/td><\/tr><\/tbody><\/table><\/div><p>The number of correctly classified instances is 274, and the number of misclassified cases is 0. As there are no misclassified patterns, the model predicts this testing data well.<\/p><\/section><section><h2>7. Model deployment<\/h2><p>In the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment\">model deployment<\/a> phase, the neural network predicts outputs for inputs it has never seen.<\/p><p>For that, we can use <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment#ResponseOptimization\">Response Optimization<\/a>. The objective of the response optimization algorithm is to exploit the mathematical model to look for optimal operating conditions. Indeed, the predictive model allows us to simulate different operating scenarios and adjust the control variables to improve efficiency.<\/p><p>An example is maximizing wavelet variance while maintaining the result equal to 1.<\/p><p>The following table resumes the conditions for this problem.<\/p><div style=\"overflow-x: auto;\"><table><tbody><tr><th>Variable name<\/th><th>Condition<\/th><th>\u00a0<\/th><\/tr><tr><th>Variance of wavelet<\/th><td style=\"text-align: right;\">Maximize<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>Skewness of wavelet<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>Curtosis of wavelet<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>Entropy of image<\/th><td style=\"text-align: right;\">None<\/td><td style=\"text-align: right;\">\u00a0<\/td><\/tr><tr><th>Counterfeit<\/th><td style=\"text-align: right;\">Greater than<\/td><td style=\"text-align: right;\">0.5<\/td><\/tr><\/tbody><\/table><\/div><p>The following list shows the optimum values for previous conditions.<\/p><ul><li><strong>variance_of_wavelet_transformed<\/strong>: 6.62294.<\/li><li><strong>skewness_of_wavelet_transformed<\/strong>: -10.5761.<\/li><li><strong>curtosis_of_wavelet_transformed<\/strong>: -2.55656.<\/li><li><strong>entropy_of_image<\/strong>: 1.39497.<\/li><li><strong>counterfeit<\/strong>: 0.98 (98% of been fraudulent).<\/li><\/ul><p>We can embed the neural network&#8217;s mathematical expression\u00a0in the banknote authentication system. This expression is written below.<\/p><pre>scaled_wavelet_transformed_variance = (wavelet_transformed_variance-0.433735)\/2.84276;\nscaled_wavelet_transformed_skewness = (wavelet_transformed_skewness-1.92235)\/5.86905;\nscaled_wavelet_transformed_curtosis = (wavelet_transformed_curtosis-1.39763)\/4.31003;\nscaled_image_entropy = (image_entropy+1.19166)\/2.10101;\ny_1_1 = Logistic (-2.95122+ (scaled_wavelet_transformed_variance*-3.20568)+ (scaled_wavelet_transformed_skewness*-4.57895)\n+ (scaled_wavelet_transformed_curtosis*-5.83131)+ (scaled_image_entropy*0.125717));\ny_1_2 = Logistic (3.23366+ (scaled_wavelet_transformed_variance*3.5863)+ (scaled_wavelet_transformed_skewness*2.36407)\n+ (scaled_wavelet_transformed_curtosis*1.0865)+ (scaled_image_entropy*-1.0501));\nnon_probabilistic_counterfeit = Logistic (3.48838+ (y_1_1*9.72432)+ (y_1_2*-8.93277));\n(counterfeit) = Probability(non_probabilistic_counterfeit);\nLogistic(x){\nreturn 1\/(1+exp(-x))\n}\nProbability(x){\nif x &lt; 0\nreturn 0\nelse if x &gt; 1\nreturn 1\nelse\nreturn x\n}\n<\/pre><\/section><section><h2 style=\"font-family: Outfit, sans-serif; color: #242424;\">8. Conclusions<\/h2><h2>References<\/h2><ul><li><a href=\"https:\/\/archive.ics.uci.edu\/ml\/datasets\/banknote+authentication\">Banknote authentication data set<\/a>, UCI Machine Learning Repository.<\/li><\/ul><\/section><section><h2>Related posts<\/h2><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"author":13,"featured_media":2595,"template":"","categories":[29],"tags":[47],"class_list":["post-3465","blog","type-blog","status-publish","has-post-thumbnail","hentry","category-examples","tag-finance"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Detect forged banknotes using machine learning<\/title>\n<meta name=\"description\" content=\"Build a machine learning model to detect forged banknotes accurately. For that, we use a set of image features.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Banknote authentication machine learning example\" \/>\n<meta property=\"og:description\" content=\"This example aims to detect fraudulent notes accurately.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/\" \/>\n<meta property=\"og:site_name\" content=\"Neural Designer\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-10T14:16:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Banknote authentication machine learning example\" \/>\n<meta name=\"twitter:description\" content=\"This example aims to detect fraudulent notes accurately.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp\" \/>\n<meta name=\"twitter:site\" content=\"@NeuralDesigner\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/\",\"name\":\"Detect forged banknotes using machine learning\",\"isPartOf\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp\",\"datePublished\":\"2026-02-12T10:13:00+00:00\",\"dateModified\":\"2026-03-10T14:16:26+00:00\",\"description\":\"Build a machine learning model to detect forged banknotes accurately. For that, we use a set of image features.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#primaryimage\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.neuraldesigner.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\/\/www.neuraldesigner.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Detect forged banknotes using machine learning\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"name\":\"Neural Designer\",\"description\":\"Explanable AI Platform\",\"publisher\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.neuraldesigner.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\",\"name\":\"Neural Designer\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"width\":1024,\"height\":223,\"caption\":\"Neural Designer\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NeuralDesigner\",\"https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Detect forged banknotes using machine learning","description":"Build a machine learning model to detect forged banknotes accurately. For that, we use a set of image features.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/","og_locale":"en_US","og_type":"article","og_title":"Banknote authentication machine learning example","og_description":"This example aims to detect fraudulent notes accurately.","og_url":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/","og_site_name":"Neural Designer","article_modified_time":"2026-03-10T14:16:26+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_title":"Banknote authentication machine learning example","twitter_description":"This example aims to detect fraudulent notes accurately.","twitter_image":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp","twitter_site":"@NeuralDesigner","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/","url":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/","name":"Detect forged banknotes using machine learning","isPartOf":{"@id":"https:\/\/www.neuraldesigner.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#primaryimage"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#primaryimage"},"thumbnailUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp","datePublished":"2026-02-12T10:13:00+00:00","dateModified":"2026-03-10T14:16:26+00:00","description":"Build a machine learning model to detect forged banknotes accurately. For that, we use a set of image features.","breadcrumb":{"@id":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#primaryimage","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/banknote-authentication.webp","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.neuraldesigner.com\/blog\/banknote-authentication\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.neuraldesigner.com\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.neuraldesigner.com\/blog\/"},{"@type":"ListItem","position":3,"name":"Detect forged banknotes using machine learning"}]},{"@type":"WebSite","@id":"https:\/\/www.neuraldesigner.com\/#website","url":"https:\/\/www.neuraldesigner.com\/","name":"Neural Designer","description":"Explanable AI Platform","publisher":{"@id":"https:\/\/www.neuraldesigner.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.neuraldesigner.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.neuraldesigner.com\/#organization","name":"Neural Designer","url":"https:\/\/www.neuraldesigner.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","width":1024,"height":223,"caption":"Neural Designer"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NeuralDesigner","https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog\/3465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/users\/13"}],"version-history":[{"count":4,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog\/3465\/revisions"}],"predecessor-version":[{"id":22003,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog\/3465\/revisions\/22003"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media\/2595"}],"wp:attachment":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media?parent=3465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/categories?post=3465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/tags?post=3465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}