A controller for controlling a control target, the controller comprising: a PLC engine ; and a machine learning engine , wherein the PLC engine comprises: a feature quantity generation unit configured to generate, from data associated with the control target, a feature quantity appropriate for detecting an abnormality in the control target; an instruction unit configured to instruct the machine learning engine to detect the abnormality; and a data compression unit configured to compress data about the feature quantity generated by the feature quantity generation unit and provide the compressed data to the machine learning engine , and the machine learning engine comprises: a machine learning unit configured to perform machine learning using the feature quantity generated by the feature quantity generation unit ; and an abnormality detection unit configured to detect the abnormality in the control target based on an abnormality detection parameter determined from a learning result of the machine learning unit used for detecting the abnormality, and based on the feature quantity generated by the feature quantity generation unit , wherein the instruction unit is configured to transmit a request for detecting the abnormality to the abnormality detection unit , and the abnormality detection unit is configured to detect the abnormality without returning a response to the request to the instruction unit . a PLC engine ; and a machine learning engine , wherein the PLC engine comprises: a feature quantity generation unit configured to generate, from data associated with the control target, a feature quantity appropriate for detecting an abnormality in the control target; an instruction unit configured to instruct the machine learning engine to detect the abnormality; and a data compression unit configured to compress data about the feature quantity generated by the feature quantity generation unit and provide the compressed data to the machine learning engine , and a feature quantity generation unit configured to generate, from data associated with the control target, a feature quantity appropriate for detecting an abnormality in the control target; an instruction unit configured to instruct the machine learning engine to detect the abnormality; and a data compression unit configured to compress data about the feature quantity generated by the feature quantity generation unit and provide the compressed data to the machine learning engine , and the machine learning engine comprises: a machine learning unit configured to perform machine learning using the feature quantity generated by the feature quantity generation unit ; and an abnormality detection unit configured to detect the abnormality in the control target based on an abnormality detection parameter determined from a learning result of the machine learning unit used for detecting the abnormality, and based on the feature quantity generated by the feature quantity generation unit , a machine learning unit configured to perform machine learning using the feature quantity generated by the feature quantity generation unit ; and an abnormality detection unit configured to detect the abnormality in the control target based on an abnormality detection parameter determined from a learning result of the machine learning unit used for detecting the abnormality, and based on the feature quantity generated by the feature quantity generation unit , wherein the instruction unit is configured to transmit a request for detecting the abnormality to the abnormality detection unit , and the abnormality detection unit is configured to detect the abnormality without returning a response to the request to the instruction unit . <EOS>