text:
Thank you for visiting nature.com. You are using a browser version with limited support for CSS. To obtain the best experience, we recommend you use a more up to date browser (or turn off compatibility mode in Internet Explorer). In the meantime, to ensure continued support, we are displaying the site without styles and JavaScript.

Low Power, CMOS-MoS2 Memtransistor based Neuromorphic Hybrid Architecture for Wake-Up Systems

Abstract

Neuromorphic architectures have become essential building blocks for next-generation computational systems, where intelligence is embedded directly onto low power, small area, and computationally efficient hardware devices. In such devices, realization of neural algorithms requires storage of weights in digital memories, which is a bottleneck in terms of power and area. We hereby propose a biologically inspired low power, hybrid architectural framework for wake-up systems. This architecture utilizes our novel high-performance, ultra-low power molybdenum disulphide (MoS2) based two-dimensional synaptic memtransistor as an analogue memory. Furthermore, it exploits random device mismatches to implement the population coding scheme. Power consumption per CMOS neuron block was found to be 3 nw in the 65 nm process technology, while the energy consumption per cycle was 0.3 pJ for potentiation and 20 pJ for depression cycles of the synaptic device. The proposed framework was demonstrated for classification and regression tasks, using both off-chip and simplified on-chip sign-based learning techniques.

Introduction

The evolution of Internet-of-Things (IoTs) and edge devices in the areas of ubiquitous learning, sensing, and human-machine interaction is increasing dramatically1,2. These devices demand integrated intelligence in low power, small area, and computationally efficient hardware. Such computational systems consume significant power in the idle state, as they continuously process the incoming data. Thus, to reduce the power consumption significantly for such energy-constrained devices and applications where most of the computations are complex and require high energy, the wake-up system comes as a great advantage. Unlike the backend computationally complex recognition module, the wake-up system needs to be highly energy-efficient and accurately able to classify simpler tasks that can decide whether to turn on the main processing system or not. As shown in Fig. 1a, the wake-up system is an always on module and acts as a moderator between the real-world sensor unit and the main computational unit. It consists of a classification module that recognizes the ambient conditions and, once detected, it powers on the main processing system. Thus, the computational and power intensive module remains switched off and does not process the sensor data until ambient conditions are met. In the architecture of such wake-up devices, high accuracy, high energy-efficiency, and small area are key design requirements due to limited battery resources in edge computing devices. The wake-up system could be an activity detector such as motion detection of human, vibration detection for seismic monitoring systems, speech and non-speech recognition and others. Although there are few recent works in the areas of low power wake-up systems3,4, we present a novel trainable and biologically-inspired framework that utilizes memtransistors as analogue memories.

We hereby propose a biologically inspired wake-up sytem with embedded intelligence and efficient energy footprint, that can be integrated with existing edge computing devices to improve their energy efficiency. The proposed framework utilizes the population coding scheme where encoding of information is carried out by the activity in an ensemble of neurons such as in the olfactory, motor, and visual cortex5,6,7,8.

The system utilizes a three terminal architecture with atomically thin molybdenum disulphide (MoS2) as an active channel to host analogue memory. Such a gate driven memtransistor architecture differs from conventional two terminal memristor device and allows operation at very low power. In this work, the term memtransistor is used to define a memory device operating in the transistor geometry. This should not be confused with a similar terminology utilized in9. It simultaneously exploits device mismatches to implement randomness in the population coding scheme. The utilization of memtransistors in neuromorphic circuits offers a promising realization of synapses, variable weight storage, and many other applications10,11,12,13. Neuronal non-linearity and random weights are designed using CMOS 65 nm (Single-Input Single-Output, SISO)14,15 and 130 nm (Multiple-Input Single-Output, MISO)16 technology nodes. These chips use random device mismatches present in the lower technology nodes to implement fixed random weights in the architecture. Moreover, neuronal non-linearity in these chips can be tuned externally to make the system more heterogenous using systematic offset14,15,16.

In this framework, we utilized our fabricated MoS2 synaptic memtransistor’s characterstic measurment data for implementing analogue memory as the memtransistor’s memductance (conductance of memtransistor). Layered semiconducting transition metals dichalcogenides (TMDCs), including MoS2, MoSe2, WS2, WSe2 and group III-VI semiconductors such as GaSe are known to demonstrate non-volatile memory behavior in a two-terminal memristor or theree-terminal transistor geometry17,18,19,20,21,22,23. This is attributed to the transport gap in their electronic band structure which leads to a large variation in the channel resistance under the influence of a gate or drain bias. The high (program) and low (erase) resistance states can be utilized for the storage of information in memory applications. However, most of the reported non-volatile memory devices based on MoS2 typically utilize a large drain bias, which leads to substantial power dissipation. In order to overcome this shortcoming, we have implemented an extended floating gate (FG) geometry in the current device. This is done by lithographically connecting the graphene underlayer to a floating gold electrode which enhances the effective coupling between the Si++ control gate (global back gate) and the MoS2 channel. This enhanced coupling is responsible for the observed improvement in the device performance markers such as subthreshold swing of 77–80 mV/decade24 (Supplementary Fig. 2) and reduces voltage requirements for analogue memory action. Previously reported MoS2-based synaptic memtransistors utilized bias-induced motion of defect states in chemical vapour deposition (CVD) grown thin films to demonstrate the hysterisis effect9. However, in the current device, we utilize an electric field driven out-of-plane charge transfer between the channel and the FG to demonstrate pulsed multi-state memory behavior, similar to a biological synapse. The trilayer device used for this purpose comprises of an exfoliated single layer MoS2 channel, hexagonal boron nitride (hBN) tunnel barrier, and graphite floating gate. It utilizes floating gate memories, which involves the tunneling of charge carriers from the channel through a tunnel barrier into the floating gate25,26,27. The device is capable of emulating synaptic plasticity while maintaining energy dissipation figures below 0.3 pJ for long-term potentiation (LTP) and 20 pJ for long-term depression (LTD).

Using such hybrid framework that utilizes analogue subthreshold circuits for computation, along with memtransistive device as a multistate analogue memory, not only saves power (both in the designed circuit as well as power consumption by the memtransistive device) but also improves computational efficiency. Hence, the synaptic memtransistor memory can provide two functions simultaneously, one is a substitute for digital memories as an adaptable multi-state memductance and the other is the execution of an inherent multiplication operation by Kirchhoff’s current law (KCL). We tested our proposed framework using both offline and simplified sign-based online learning techniques28 for classification as well as regression tasks. Simulation and testing of the proposed framework was done using fabricated chip data and fabricated synaptic memtransistor’s characteristic measurement data. We believe that this hybrid architecture paves the way to achieve a low power computing paradigm that is robust to variability and is a fault-tolerant design.

Hybrid architecture framework

The wake-up system architecture based on the population coding scheme is shown in Fig. 1b. There is an all-to-all connectivity between the input and the first hidden/encoding layer, and sparse connectivity between other layers. This sparsity and combination of two hidden layers provides better randomness for feature expansion of input stimuli into higher dimensional space, and hence improves the representational capacity of the network29,30. The input stimuli are encoded using fixed and random weights for each hidden layer neuron. The weights of the second hidden layer to the output layer are learnt for the given regression or classfication tasks and are calculated by minimizing error using the least square method (LSM). The outputs are determined by the ensemble of hidden layer neurons. Figure 1c shows the architecture design of the proposed CMOS-Memtransistor hybrid framework utilizing the population coding scheme. In this framework, three components are incorporated, namely the trainable analogue block (TAB)14,15,16, synaptic memtransistor device, and sign-based online update learning (SOUL)28. The TAB architecture uses random device mismatches between transistors for random and fixed weighted summation of input stimuli, and further adds non-linearity to each hidden neuron. The memtransistor is used as an in-memory computing device, which stores trainable weights as multi-state analogue values and perform multiplication operations as well. The SOUL algorithm, a hardware-efficient version of the online update rule, is used to update the values of memductance based on the correlation between the sign of the output error signal and the sign of the hidden layer neurons. The detailed architectures of these components are discussed in subsequent sections. A combination of these components along with tunable hyper-parameters (threshold error and gain control) shows the potential of achieving robust, fault-tolerant, low power, and smaller area systems.

Trainable analogue block (TAB)

In the wake-up architecture, the TAB uses device mismatch as a means for random projections of the input to a higher dimensional feature space. The first prototype of the TAB chip for single input (SISO)14 with 456 hidden neurons was fabricated using 65 nm technology node, and then a generalized form of the TAB framework for multiple inputs (MISO)16 with 100 hidden neurons was built using 130 nm technology node. Learning capabilities of the chips were demonstrated for both regression and classification tasks.

Figure 2 shows the schematic of a hidden neuron building block in the SISO and MISO TAB designs. Figure 2a represents an operational transconductance amplifier (OTA), with V1 and V2 as differential inputs, and Vb as bias voltage to set the bias current, Ib. The current in transistors M1 and M2 and the output current of OTA, Iout are described31 in Eqs (13). Here, UT is thermal voltage, and η is the slope factor32, which ranges from 1.1 to 1.5 in the weak inversion region. In case of multiple inputs (MISO), weighted input summation for each hidden neuron is performed using the weighted average block (WAB), as shown in Fig. 2b and the effective output, Vout is described in Eq. 4. Figure 2c represents the schematic of the neuronal non-linearity block, which is cascaded after the WAB for each hidden neuron. Here, Vin is connected to Vout of the WAB. Due to process variations, random device mismatches in the differential pair and transconductance amplifier lead to random weights and different non-linear activation functions. Further, randomness can be incorporated by applying different Vref and Vb to different hidden neurons. In Fig. 2c, Itanh is the output current of the hidden neuron, and the other output, signH is required for the SOUL algorithm in the online update of weights (here memductance). In case of single input (SISO), the WAB is not required and the input can be directly connected to the neuronal non-linearity block for each hidden neuron. Figure 2d,e represents the neuronal tuning curves for SISO and MISO TAB architecture. It shows the variation in offset and current amplitude by varying reference and bias voltages.

$${{\rm{I}}}_{1}={{\rm{I}}}_{{\rm{b}}}[\exp \,(\frac{{{\rm{V}}}_{1}}{\eta {{\rm{U}}}_{{\rm{T}}}})]/[\exp \,(\frac{{{\rm{V}}}_{1}}{\eta {{\rm{U}}}_{{\rm{T}}}})+\exp \,(\frac{{{\rm{V}}}_{2}}{\eta {{\rm{U}}}_{{\rm{T}}}})]$$
(1)
$${{\rm{I}}}_{2}={{\rm{I}}}_{b}[\exp \,(\frac{{{\rm{V}}}_{2}}{\eta {{\rm{U}}}_{{\rm{T}}}})]/[\exp \,(\frac{{{\rm{V}}}_{1}}{\eta {{\rm{U}}}_{{\rm{T}}}})+\exp \,(\frac{{{\rm{V}}}_{2}}{\eta {{\rm{U}}}_{{\rm{T}}}})]$$
(2)
$${{\rm{I}}}_{{\rm{out}}}={{\rm{I}}}_{{\rm{b}}}\,\tanh \,\frac{{{\rm{V}}}_{1}-{{\rm{V}}}_{2}}{2\eta {{\rm{U}}}_{{\rm{T}}}}={{\rm{g}}}_{{\rm{m}}}({{\rm{V}}}_{1}-{{\rm{V}}}_{2}){{\rm{g}}}_{{\rm{m}}}=\frac{{{\rm{I}}}_{{\rm{b}}}}{2\eta {{\rm{U}}}_{{\rm{T}}}}$$
(3)
$${{\rm{V}}}_{{\rm{out}}}=\frac{{\sum }_{{\rm{i}}}^{{\rm{N}}}{{\rm{g}}}_{{\rm{mi}}}{{\rm{V}}}_{{\rm{i}}}}{{\sum }_{{\rm{i}}}^{{\rm{N}}}{{\rm{g}}}_{{\rm{mi}}}}$$
(4)

Synaptic memtransistor

After the encoding scheme is implemented using the TAB, the ensemble of neurons are used to decode the population coding scheme using trainable weight blocks. Here, MoS2-based ultra-low power two-dimensional synaptic memtransistors are used to implement trainable weight blocks where weights are stored as the memductance of memtransistors. These weights are updated to reduce the mean square error. For the synaptic memtransistor, we found the hysteretic switching at near-ideal sub-threshold swing of 80 mV/decade in the fabricated device, shown in Fig. 3. This hysteresis is caused by charge tunneling through hBN, and is used to emulate synaptic plasticity at energy dissipation below 0.3 pJ for long term potentiation (LTP) and 20 pJ long term depression (LTD).

Figure 3a,b show the variation in memductance ‘Msd’ for positive and negative pulses applied, respectively, with a pulse interval on 500 ms. Figure 3c shows the characteristic plot for the output current versus input voltage (pulse) obtained for negative and positive pulse intervals. It shows that on applying negative pulses, the memductance increases and so does the output current. Figure 3d shows the sweep rate dependence of hysteresis transfer characteristics, performed at different sweeping rates of back gate voltage (Vg). The negligible change in the hysteresis window size with sweep rate indicates the absence of slow defect-based charge trapping processes in the MoS2 floating gate devices. Furthermore, the plasticity of vertical charge transfer in the memtransistor allows non-volatile conductance change under pulsed gate operation like that in biological synapses, where excitation and inhibition of pre-synaptic pulse increases or reduces the conductance of the synapse, respectively. A detailed investigation on the retentivity, robustness, endurance and switching variability of the various conductance states in the MoS2 FG synaptic devices is provided in our previous communication24. Here, the gate acts as the pre-synaptic terminal and controls the conductance of the MoS2 channel/synapse using a sequence of pulses. The increase in conductance (potentiation) and the decrease in conductance (depression) are performed by applying short time period, voltage pulses at the gate terminal, while simultaneously tracking the change in the drain current. The channel conductance increases continuously for every excitatory pulse, as shown in Fig. 3e, following an approximately linear pattern and decreases on application of an inhibitory pulse. Figure 3f,g shows the optical micrograph and schematic representation of the fabricated device, respectively. A detailed implementation is mentioned in the Methods section.

Sign-based online update learning (SOUL)

A simple and hardware-friendly learning algorithm, SOUL was used to update the values of memductance. The SOUL28 algorithm aims at minimizing the square error loss by considering just the sign of terms involved in weight change. Thus, using this algorithm, the weights of the trainable connection will move either to the next or previous level/state. The cost function in our framework is assumed to be the square error loss function. If $${{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}}$$ be the output of the ith hidden neuron, $${{\rm{w}}}_{{\rm{ik}}}^{{\rm{h}}}$$ is the connection from the ith hidden neuron to the kth output node, $$\,\widehat{{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}}$$ be the predicted value of kth output node, $${{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}$$ be the target value of kth output node, nh be the number of hidden layer neurons and np be the number of output layer nodes, then the loss function, $$\theta ={\sum }_{{\rm{k}}=1}^{{{\rm{n}}}_{{\rm{P}}}}{(\hat{{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}}-{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}})}^{2}$$, where $$\widehat{{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}}={\sum }_{{\rm{i}}=1}^{{{\rm{n}}}_{{\rm{h}}}}{{\rm{w}}}_{{\rm{ik}}}^{{\rm{h}}}{{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}}\,$$. In case of online learning after each iteration, $${{\rm{w}}}_{{\rm{i}}{\rm{k}}}^{{\rm{h}}}={{\rm{w}}}_{{\rm{i}}{\rm{k}}}^{{\rm{h}}}-(\hat{{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}}-{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}})\,\ast \,{{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}}$$. Here, change in weight, $${{\rm{w}}}_{{\rm{ik}}}^{{\rm{h}}}=(\widehat{{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}}-{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}})\,\ast \,{{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}}$$. In the SOUL, change in weight for a corresponding connection is $${{\rm{w}}}_{{\rm{ik}}}^{{\rm{h}}}={\rm{sign}}({\rm{error}})\,\ast \,{\rm{sign}}({{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}})$$, where $${\rm{error}}=\widehat{{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}}-{{\rm{y}}}_{{\rm{k}}}^{{\rm{p}}}$$. For hardware implementation, sign(error) is a comparator for comparing system output with the expected output. As shown in Fig. 2c, signH is $${\rm{sign}}\,({{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}})$$. The product of sign(error) and $${\rm{sign}}\,({{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}})$$ can be implemented using the XOR gate. Hence, based on both sign(error) and $${\rm{sign}}\,({{\rm{y}}}_{{\rm{i}}}^{{\rm{h}}})$$ the value of memductance for that connection will either increment or decrement.

Results

The proposed framework was tested using both off-chip and simplified on-chip sign-based learning techniques. The results for classification and regression tasks using offline and simplified sign-based online learning for single as well as dual input data are presented in this section. In case of online learning, the simplified weight update algorithm, SOUL was used. The weights were updated in each example. Furthermore, a threshold limit was set on the error value, such that for an error value below the threshold limit, the weights (memductance values) will not update for an on-going iteration. Here, in case of online learning, the threshold error and gain of the weight block are hyper-parameters that can be easily tuned from outside. In case of offline learning, the weights were calculated off-chip using the LSM approach and were then quantized into memductance levels (Fig. 3a–c) supported by our fabricated memtransistor. We utilized the memductance data from the fabricated memtransistor device shown in Fig. 3f for analogue memory (weight).

For offline learning, we utilized the activity recognition system based on multi-sensor data fusion (AReM) dataset from UCI repository33 with multivariate, sequential, and time-series characteristics. Three activities namely walking, standing, and lying were used from dataset for classification. Dimensionality reduction34 using singular value decomposition was done on the available AReM dataset to decrease the feature vector size from six to two, as the MISO TAB is fabricated for two inputs only. We then normalized the features between [0.3, 0.9], with one feature quantized into 31 points and the other feature into 53 points. Similarly, the proposed framework was tested for the two-moon classification problem. Furthermore, we also performed regression tasks for dual input data to endorse the validity of the proposed framework. For regression, the target function was set as a square function, $${\rm{Z}}={({\rm{X}}-0.5)}^{2}+{({\rm{Y}}-0.5)}^{2}$$. Inputs X and Y were similarly normalized and quantized into 31 points and 53 points, respectively. For online learning (using the SOUL algorithm), we used the SISO TAB chip data to demonstrate the proof-of-concept for the CMOS-Memtransistor hybrid architecture utilizing the SOUL algorithm. For the SISO framework, a regression task was performed to confirm the validity of the proposed framework. Here, the regression target function is assumed to be parabolic $${\rm{Y}}={({\rm{X}}-0.5)}^{2}$$ and cubic $${\rm{Y}}={({\rm{X}}-0.5)}^{3}$$. For this case, we normalized the input, X between [0, 1] into 1500 quantization levels.

Figure 4a,b shows the binary classification with non-linear boundaries in the two-moon shape classification problem including misclassified points circled in green. Figure 4c,d elaborate the results for the parabolic and cubic regression tasks in the SISO framework. Figure 4e,f show the regression results for the square target function. Output in Fig. 4c–f is represented in micro-amperes. The results for the AReM, two moon classification, square, parabolic and cubic regression functions are tabulated in Table 1, represents the accuracy and root mean square (RMS) loss for training and testing using both online and offline learning. The calculated RMS loss function is defined as $${\rm{J}}=\sqrt{\frac{1}{{\rm{n}}}\mathop{\sum }\limits_{{\rm{i}}=1}^{{\rm{n}}}{({\hat{{\rm{Y}}}}_{{\rm{i}}}-{{\rm{Y}}}_{{\rm{i}}})}^{2}}$$, where n is the number of samples, $${\hat{{\rm{Y}}}}_{{\rm{i}}}$$ is the predicted output and Yi denotes the expected value or true value corresponding to ith sample.

Discussion

This paper proposes a biologically inspired, low power, hybrid architectural framework-based wake-up module for computationally and power intensive systems. The proposed wake-up module based on the population coding scheme is trainable, energy efficient, fault-tolerant, and robust in design. It is generic enough to be used in several applications such as activity detection, speech and non-speech detection, health activity analysis, and other applications where classification and regression tasks are required. We showed the feasibility and working of the proposed framework for the population coding scheme, using device mismatches and memtransistor as an analogue memory. The results for classification and regression tasks using offline and online learning for single as well as dual input data TAB chips were presented.

The proposed framework utilizes promising features from the TAB architecture, memtransistor synaptic memory, and the hardware-friendly SOUL algorithm. The subthreshold current mode TAB exploits random device mismatches for fixed and random feature expansion of input stimuli. The novel ultra-low power memtransistor shown in Fig. 3f,g which is based on controlled charge tunneling was used as a replacement of digital memories with non-volatile multi-state analogue memories and to execute the functionality of the multiplication35. For the fabricated memtransistor, we found the sub-threshold swing to be around 80 mv/decade and energy dissipation below 0.3 pJ for LTP and 20 pJ LTD, which is similar to that in synaptic devices previously reported and is lower than the values reported for CMOS36,37,38.

It was further noted that providing a good proportion of randomness from input stimuli to the hidden layer improves performance in terms of accuracy. In the proposed framework, the output gain and threshold limit for error (tunable hyper-parameters only for online learning) need to be adjusted to get higher accuracy. They can be tuned externally by controlling reference voltages, as shown in Fig. 2d,e. This framework can further be extended for the implementation of deep neural networks and recurrent echo state networks for better time series data analysis and reducing the overhead and energy consumption for the data pre-processing block, as presently required in population coding schemes. From the promising results for regression and classification tasks, this framework proves to be a step closer for designing a low power, less area, fault-tolerant, and robust architecture. These characteristics enable the framework to be employed in onsite processing of data such as in IoT devices, edge devices, energy- and area-constrained devices or devices with low computational resources.

Methods

Fabrication of discrete synaptic memtransistor

The synaptic memtransistor architecture draws inspiration from floating gate structures that have been implemented in memory applications previously25,26. Harnessing the advancements in fabrication techniques for two-dimensional materials, we successfully built a two-dimensional analogue floating gate memory using the technique of micromechanical transfer. The current device is a three-layer stack consisting of an ultrathin single layer molybdenum disulphide (MoS2) as the channel, hexagonal boron nitride (hBN) as the dielectric, and extended graphite as the floating gate. To fabricate the device, individual layers were first exfoliated on a sacrificial Si++/SiO2 (285 nm) wafer. These were searched under an optical microscope and individual flakes were selected based on optical contrast. The layer number of MoS2 was confirmed using Raman spectroscopy (see Supplementary Fig. 1), and the thickness of the hBN dielectric was measured using atomic force microscopy (AFM). Next, selected layers were picked up from their sacrificial substrates onto a polymer-coated glass slide in proper sequence39. For the current device, we first pick up MoS2, following this, the hBN layer is picked up underneath the MoS2 layer using the van der Waals attraction between the two. Finally, the graphite layer is added to the base of the stack. The whole process is performed under an optical microscope with precision rotation and translation stages, which enable us to properly align the layers before the pickup process. For the final step in the transfer process, the whole stack is removed from the polymer-coated glass slide onto a pre-patterned Si++/SiO2 (285 nm) substrate. Electron beam lithography is used to define the contacts, followed by metallization via thermal evaporation of Cr/Au (5/60 nm). We also designed an extension for the floating gate, which helps improve the capacitive coupling of the channel, thus enabling faster switching and improved device performance. This was fabricated by lithographically joining the graphite layer to a floating gold contact. The device was then packaged in a standard Kyocera chip carrier and electrical measurements were performed in a vacuum-compatible enclosure at room temperature. Optical micrograph of a trilayer stack after transfer, electron beam lithography, and metallization is shown in Fig. 3f.

Device observations

Figure 3g shows the schematic representation of the device structure. We observed a large anti-hysteresis in the transfer characteristics with the threshold voltage for the forward sweep being lower than that for the reverse sweep. This hysteresis is sweep-range-dependent, with a continuous decrease in the window size as we reduce the gate voltage range. A controlled charge tunneling model may be utilized to explain these observations. Starting from zero gate bias or flat-band condition, an increase in the gate voltage leads to an electron doping of the MoS2 channel. This raises the fermi level of the MoS2 layer above that in graphite and leads to a tunneling of electrons across the tunnel barrier into the floating gate, making it negatively charged. On reversing the sweep direction, the negatively charged floating gate screens the positive back gate bias, leading to the flat-band condition at an effective positive value of gate bias. Further reduction of the gate bias leads to the opposite condition where the fermi level of the floating gate rises above the MoS2 layer, leading to a tunneling of holes and a positive doping in the floating gate. When we commence the forward sweep again, this positive charge on the floating gate screens the gate bias, leading to a flat-band condition at a negative gate bias, completing the anti-hysteretic transport characteristic. Harnessing this charge tunneling process enables us to operate our device as a multistate step-like memory. The change in conductance is attained by applying short time period (~100 ms) pulses at the back-gate electrode. A negative and positive pulse leads to an increase and decrease in channel conductance, respectively as shown in Fig. 3a,b. The continuous tunneling of charge per pulse leads to a cumulative increase in the screening electric field, which manifests itself in a linear increase or decrease in channel conductance depending on the type (positive or negative) of charge tunneling into the floating gate.

Electrical measurements for potentiation and depression of channel conductance

Potentiation and depression gate voltage pulses were applied using a synthesized function generator DS 345 from Stanford Research Systems. The drain voltage was supplied using a Lock-in amplifier SR 830 (Stanford Research Systems) (226.7 Hz sinusoidal wave), while the current at the source terminal was measured using the internal DAC of this Lock-in.

References

1. 1.

Shanthamallu, U. S., Spanias, A., Tepedelenlioglu, C. & Stanley, M. A brief survey of machine learning methods and their sensor and IoT applications. IEEE International Conference on Information, Intelligence, Systems and Applications (IISA), Larnaca, pp. 1–8 (2017).

2. 2.

Samie, F., Bauer, L. & Henkel, J. IoT technologies for embedded computing: A survey. IEEE International Conference on Hardware/Software Codesign and System Synthesis, pp. 8 (2016).

3. 3.

Delbruck, T., Koch, T., Berner, R. & Hermansky, H. Fully integrated 500 uw speech detection wake-up circuit. IEEE International Symposium on Circuits and Systems (ISCAS), pp. 2015–2018 (2010).

4. 4.

Shah, S. & Hasler, J. Low power speech detector on a FPAA. IEEE International Symposium on Circuits and Systems (ISCAS), pp. 1–4 (2017).

5. 5.

Caron, S. J. C., Ruta, V., Abbott, L. F. & Axel, R. Random convergence of olfactory inputs in the Drosophila mushroom body. Nature 497, 113–117 (2013).

6. 6.

Georgopoulos, A. P., Schwartz, A. B. & Kettner, R. E. Neuronal population coding of movement direction. Science 233, 1416–1419 (1986).

7. 7.

Georgopoulos, A. P., Kettner, R. E. & Schwartz, A. B. Primate motor cortex and free arm movements to visual targets in three-dimensional space. II. Coding of the direction of movement by a neuronal population. Journal of Neurosci. 8, 2928–37 (1988).

8. 8.

Lee, C., Rohrer, W. H. & Sparks, D. L. Population coding of saccadic eye movements by neurons in the superior colliculus. Nature 332, 357–360 (1988).

9. 9.

Sangwan, V. K. et al. Multi-terminal memtransistors from polycrystalline monolayer molybdenum disulfide. Nature 554(7693), 500 (2018).

10. 10.

Jo, S. H. et al. Nanoscale memristor device as synapse in neuromorphic systems. Nano Lett. 10, 1297–1301 (2010).

11. 11.

Pershin, Y. V. & Ventra, M. D. Experimental demonstration of associative memory with memristive neural networks. Neural Networks 23, 881–886 (2010).

12. 12.

Thomas, A. Memristor-based neural networks. Journal of Physics, Applied Physics 46, 093001 (2013).

13. 13.

Querlioz, D., Bichler, O. & Gamrat, C. Simulation of a memristor-based spiking neural network immune to device variations. International Joint Conference on Neural Network (IJCNN), (2011).

14. 14.

Thakur, C. S., Hamilton, T. J., Wang, R., Tapson, J. & van Schaik, A. A neuromorphic hardware framework based on population coding, International Joint Conference on Neural Networks (IJCNN), pp. 1–8 (2015).

15. 15.

Thakur, C. S., Wang, R., Hamilton, T. J., Tapson, J. & van Schaik, A. A low power trainable neuromorphic integrated circuit that is tolerant to device mismatch. IEEE Trans. Circuits Syst. I 63, 211–221 (2016).

16. 16.

Thakur, C. S. et al. An analogue neuromorphic co-processor that utilizes device mismatch for learning applications. IEEE Trans. Circuits Syst. I 65, 1–11 (2017).

17. 17.

Choi, M. S. et al. Controlled charge trapping by molybdenum disulphide and graphene in ultrathin heterostructured memory devices. Nature communications 4, 1624 (2013).

18. 18.

Bertolazzi, S., Krasnozhon, D. & Kis, A. Nonvolatile memory cells based on MoS2/graphene heterostructures. ACS nano 7, 3246–3252 (2013).

19. 19.

Lee, H. S. et al. MoS2 nanosheets for top‐gate nonvolatile memory transistor channel. Small 8, 3111–3115 (2012).

20. 20.

Woo, M. H. et al. Low‐power nonvolatile charge storage memory based on MoS2 and an ultrathin polymer tunneling dielectric. Advanced Functional Materials 27, 1703545 (2017).

21. 21.

Ge, R. et al. Atomristor: nonvolatile resistance switching in atomic sheets of transition metal dichalcogenides. Nano letters 18(1), 434–441 (2017).

22. 22.

Wang, L. et al. Artificial Synapses Based on Multiterminal Memtransistors for Neuromorphic Application. Advanced Functional Materials, 1901106 (2019).

23. 23.

Yang, Y. et al. Three-terminal memtransistors based on two-dimensional layered gallium selenide nanosheets for potential low-power electronics applications. Nano Energy 57, 566–573 (2019).

24. 24.

Paul, T. et al. A high-performance MoS2 synaptic device with floating gate engineering for neuromorphic computing. 2D Materials 6.4, 045008 (2019).

25. 25.

Frohman-Bentchkowsky, D., Mar, J., Perlegos, G. & Johnson, W. S. Electrically programmable and erasable MOS floating gate memory device employing tunneling and method of fabricating same. U.S. Patent 4(203), 158 (1980).

26. 26.

Diorio, C., Hasler, P., Minch, A. & Mead, C. A. A single-transistor silicon synapse. IEEE trans. on Electron Devices 43, 1972–1980 (1996).

27. 27.

Aamir, M. A. et al. 2D van der waals hybrid: structures, properties and Devices. World Scientific, 2D Inorganic Materials beyond Graphene, pp. 169–238 (2017).

28. 28.

Thakur, C. S. et al. An online learning algorithm for neuromorphic hardware implementation. arXiv preprint arXiv 1505, 02495 (2015).

29. 29.

Hoyer, P. O. & Hyvärinen, A. A multi-layer sparse coding network learns contour coding from natural images. Vision research 42, 1593–1605 (2002).

30. 30.

Qu, B. Y., Lang, B. F., Liang, J. J., Qin, A. K. & Crisalle, O. D. Two-hidden-layer extreme learning machine for regression and classification. Neurocomputing 175, 826–834 (2016).

31. 31.

Wang, A., Calhoun, B. H. & Chandrakasan, A. P. Sub-threshold Design For Ultra Low-Power Systems. 95, New York, Springer (2006).

32. 32.

Vittoz, E. A. Weak inversion for ultra-low-power and very low-voltage circuits. IEEE Asian Solid-State Circuits Conference, pp. 129–132 (2009).

33. 33.

Palumbo, F., Gallicchio, C., Pucci, R. & Micheli A. Activity Recognition system based on Multisensor data fusion (AReM) dataset, https://archive.ics.uci.edu/ml/machine-learning-databases/00366/ (2017).

34. 34.

Rajaraman, A. & Ullman, J. D. Mining of Massive Datasets. Cambridge University Press (2011).

35. 35.

Chakrabarti, B. et al. A multiply-add engine with monolithically integrated 3D memristor crossbar/CMOS hybrid circuit. Scientific reports 7, 46874 (2017).

36. 36.

van de Burgt, Y. et al. A non-volatile organic electrochemical device as a low-voltage artificial synapse for neuromorphic computing. Nat. mat. 16, 414 (2017).

37. 37.

Zhu, J. et al. Ion gated synaptic transistors based on 2D van der Waals crystals with tunable diffusive dynamics. Advanced Materials 30, 1800195 (2018).

38. 38.

Indiveri, G., Chicca, E. & Douglas, R. A VLSI array of low-power spiking neurons and bistable synapses with spike-timing dependent plasticity. IEEE transactions on neural networks 17, 211–221 (2006).

39. 39.

Aamir, M. A. et al. 2D van der Waals Hybrid: Structures, Properties and Devices. 2d Inorganic Materials Beyond Graphene, 169 (2017).

Acknowledgements

Research facilities for this work were supported and funded by (i) INSPIRE faculty fellowship (DST/INSPIRE/04/2016/000216) from the Department of Science & Technology, India, (ii) Funded by SERB (Science and Engineering Research Board), India: ECR/2017/002517 and IMP/2018/000550 and, (iii) the Pratiksha trust grant PratikshaYI/2017-8512.

Author information

Authors

Contributions

C.S.T., A.G., S.G., P.K. and T.P. conceived the initial idea of the framework and performed the related experiments. A.G. and T.P. fabricated the memtransistor. A.G., T.P. and P.K. conducted the measurements and analyzed the results for the device. C.S.T. and A.v.S. contributed to the design and implementation of tab chip and its concept. S.G. and P.K. contributed to implementation of the framework and related experiments. P.K., S.G. and T.P. wrote the manuscript. All authors discussed the results and implications and commented on the manuscript at all stages.

Corresponding author

Correspondence to Chetan Singh Thakur.

Ethics declarations

Competing interests

The authors declare no competing interests.

Publisher’s note Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and Permissions

Gupta, S., Kumar, P., Paul, T. et al. Low Power, CMOS-MoS2 Memtransistor based Neuromorphic Hybrid Architecture for Wake-Up Systems. Sci Rep 9, 15604 (2019). https://doi.org/10.1038/s41598-019-51606-x


text:
# Is ZFC+(negation of a large cardinal axiom) arithmetically sound?

My knowledge in set theory is very limited, so I apologize if this question is naive or trivial:

Let $A$ to be a large cardinal axiom. $T=ZFC+\neg A$ is a consistent theory. My question is:

Question : Is the theory T sound according to the standard model of arithmetic? in other words, if $\alpha$ is sentence about natural numbers such that $T\vdash \alpha$, is $\alpha$ (necessarily) true in the standard model of arithmetic?

• Inspired by your question I wonder if anti-large cardinal axioms such as Foreman's Maximality Principle (MP) have any direct implications in arithmetic. – Morteza Azad Sep 30 '17 at 21:52

Assume now that there are such cardinals, and that "large cardinal axiom" is something reasonable (so, provably in $\mathsf{ZFC}$, the relevant cardinals are weakly inaccessible). If $\kappa$ is the least ordinal such that $L_\kappa$ is a model of $\mathsf{ZFC}$, then $L_\kappa$ and $V$ agree on all arithmetic statements, since they share the same natural numbers, but there are no such cardinals in $L_\kappa$. Notice that there is such an ordinal $\kappa$, since any weakly inaccessible cardinal $\tau$ of $V$ (such as the large cardinal in question) is strongly inaccessible in $L$ and therefore $L_\tau\models\mathsf{ZFC}$. On the other hand, the minimality of $\kappa$ implies that no ordinal smaller than $\kappa$ is weakly (and therefore strongly) inaccessible in $L_\kappa$. ($\kappa$ itself is "tiny": it is countable in $L$.)
Now, if instead of weak inaccessibility you assume that consistency statements or the like qualify as large cardinal axioms, then "of course" the answer is no, as $\lnot A$ would be a false arithmetic statement.
[Note that H. Friedman's results, providing examples of combinatorial statements of low-level arithmetic complexity whose validity depends on large cardinals, assume more than the negation of the large cardinal in question in the "bad" case, where the nice combinatorial statement fails. The models of set theory where this happens are in fact not $\omega$-models.]

format: plain


text:
# Batch script is not executed if chcp was called

I'm trying to delete some files with unicode characters in them with batch script (it's a requirement). So I run cmd and execute:

> chcp 65001

Effectively setting codepage to UTF-8. And it works:

D:\temp\1>dir
Volume in drive D has no label.
Volume Serial Number is 8C33-61BF

Directory of D:\temp\1

02.02.2010  09:31    <DIR>          .
02.02.2010  09:31    <DIR>          ..
02.02.2010  09:32               508 1.txt
02.02.2010  09:28                12 delete.bat
02.02.2010  09:20                95 delete.cmd
02.02.2010  09:13    <DIR>          Rún
02.02.2010  09:13    <DIR>          Гуцул Каліпсо
3 File(s)            615 bytes
4 Dir(s)  11 576 438 784 bytes free

D:\temp\1>rmdir Rún

D:\temp\1>dir
Volume in drive D has no label.
Volume Serial Number is 8C33-61BF

Directory of D:\temp\1

02.02.2010  09:56    <DIR>          .
02.02.2010  09:56    <DIR>          ..
02.02.2010  09:32               508 1.txt
02.02.2010  09:28                12 delete.bat
02.02.2010  09:20                95 delete.cmd
02.02.2010  09:13    <DIR>          Гуцул Каліпсо
3 File(s)            615 bytes
3 Dir(s)  11 576 438 784 bytes free

Then I put the same rmdir commands in batch script and save it in UTF-8 encoding. But when I run nothing happens, literally nothing: not even echo works from batch script in this case. Even saving script in OEM encoding does not help.

So it seems that when I change codepage to UTF-8 in console, scripts just stop working. Does somebody know how to fix that?

-
Pondering and writing an actual answer soon, but two questions: Did you make sure that your batch file doesn't have U+FEFF at the start? And can you use VBScript perhaps instead of a batch file? Unicode support is much easier there. –  Joey Feb 2 '10 at 12:47
no, there's no BOM in batch file. I can use VBS, but I just wanted to know if my problem can be solved directly. –  Andy Feb 2 '10 at 14:14
Maybe it can; I've made some progress a while ago with Unicode in batch files, but it's by no means pretty and it was patchy at best. –  Joey Feb 2 '10 at 16:56

If you want to have unicode supported in batch file, then CHCP on a line by itself just aborts the batch file. What I suggest is putting CHCP on each batch file line that needs unicode as follows

chcp 65001 > nul && <real command here>

Example: In my case I wanted to have a nice TAIL of my log files while debugging, but the content for even Latin-1 characters was being messed up. So here is my batch file which wraps the real tail implementation from Windows Resource Kit.

@C:\WINDOWS\system32\chcp.com 65001 >nul && tail.exe -f %1

In addition, for output to a console, you need to set a true type font, i.e. Lucidia Console.

And apparently for output to a file the command line needs to run as Unicode, so you would kick off your batch script as follows

cmd /u /c <batch file command here>

Disclaimer: Tested on Windows XP sp3 with Windows Resource Kit.

-
Then maybe chcp 65001 && path\to\batchfile.bat would also work? –  tripleee Sep 24 '13 at 17:24

The Unicode support in console, and especially in batch files, is pretty bad. Can you "twist" the requirement to say PowerShell or Active Scripting (VBScript or JScript)?

It will save you a lot of grief in the long run (if you need to grow this beyond this simple task)

Not to mention that both PowerShell and ActiveScripting use way more powerful languages, allowing for functions, proper loops, real variables, debuggers, a lot of goodies for a more serious project.

-
Yes, I can. I just wanted to find out, is it possible to solve this bug (actually, it's a bug, isn't it) in a direct way... –  Andy Feb 4 '10 at 6:42

Try inserting a blank line as first line in your batch file...

Line 1:

Line 2:CHCP 65001

Line 3:script commmands

Should work!

-
Sorry, I forgot: Make sure the BAT file saved as UTF-8 –  Joey Lanza Sep 24 '13 at 17:25
Why should this work? Please expand by adding test cases, if possible. –  adamdunson Sep 24 '13 at 17:42
With Win7 this works, but then you don't have any problems with chcp 65001, with or without an empty line. With XP this still fails. –  jeb Sep 24 '13 at 21:20


text:
[OS X TeX] Dental problem

Maarten Sneep maarten.sneep at xs4all.nl
Fri Feb 18 17:02:06 CET 2005

On 18 feb 2005, at 16:54, Alain Schremmer wrote:
> Piet van Oostrum wrote:
>
>>> PD> I think I've never seen an un-indented tabular environment. I
>>> usually set
>>> PD> \hsize*{-5mm} or such -- except someone knows the exact name ...
>>
>> It is half of the intercolumn space (\tabcolsep), which can be
>> suppressed
>> by putting @{} in front of the column spec.
>
> I have tried to insert @{} in various places but with no luck.
>
> Below is an example (without the body text even the first two tables
> do not line up) to show why I would like it to work. Given that this
> is not for print but for uploading under GPL it does not really matter
> but I think I am beginning to catch the "typesetting" bug.

Exactly like Piet wrote: in the column spec.

\begin{tabular}{c@{}c}

will give you a table with no space between the two centered columns.

Maarten

--------------------- Info ---------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
& FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Post: <mailto:MacOSX-TeX at email.esm.psu.edu>


text:
# A way of evaluating integrals without doing anything?

The user known as sos440 posted this: \begin{align*} \sum_{n=0}^\infty \frac{r^n}{n!} \int_0^\infty x^n e^{-x} \; dx & = \int_{0}^\infty \sum_{n=0}^\infty \frac{(rx)^n}{n!} e^{-x} \; dx = \int_0^\infty e^{-(1 - r)x} \; dx \\ & = \frac{1}{1 - r} = \sum_{n=0}^\infty r^n \end{align*} (citing Tonelli's theorem to justify interchanging the sum and the integral), and concluded that $$\frac{1}{n!}\int_0^\infty x^n e^{-x}\,dx=1.$$

Is this a very isolated thing or just an instance of something generally useful for some much broader class of integrals? (Obviously, what is seen below is generally true, but how generally is it useful?)

$$\sum_{n=0}^\infty r^n \int_A f_n(x)\,dx = \int_A \sum_{n=0}^\infty \big( r^nf_n(x) \big) \, dx = \int_A g(r,x) \, dx = h(r) = \sum_{n=0}^\infty c_n r^n$$ $$\therefore \int_A f_n(x)\,dx = c_n.$$

-
I guess this could seem like magic, but isn't this just computing the exponential generating function of the integrals? We've all seen how generating function methods can make hard tasks seem simple. –  Ragib Zaman Apr 13 '12 at 6:15
We could say $$\sum_{n=0}^\infty \frac{r^n}{n!} \mathcal{M} \{ f \}(n) = r \mathcal{L} \{ f \} (-r).$$ –  anon Apr 17 '12 at 7:19
The method is essentially the same as using the moment generating method of calculating the moments of an exponentially distributed random variable. The same idea applied to the normal distribution gives$$\int_{-\infty}^\infty x^{2n}e^{-x^2/2}dx =\sqrt{2\pi}\frac{(2n)!}{2^nn!}.$$Unfortunately, I can't think of many simple examples, as not that many continuous distributions have simple explicit forms for both the pdf and MGF. –  George Lowther Aug 12 '13 at 23:49
> how generally is it useful < Is this really an answerable question? It's useful for any integral of that form! –  Sharkos Aug 16 '13 at 17:29

Rather than try and address this question generally here we give another---hopefully sufficiently different---example of the use of this type of machinery.

Suppose we are interested in integrals of the form $$\begin{equation*} \int_0^{2\pi} x^n \sin x\, dx \quad\textrm{ or }\quad \int_0^{2\pi} x^n \cos x \, dx, \end{equation*}$$ where $n\in\mathbb{N}$. It is natural to consider the more general integral $$\begin{equation*} I_n = i\int_0^{2\pi} x^n e^{i x}\, dx. \end{equation*}$$ (A factor of $i$ has been introduced for convenience.) Then $$\begin{eqnarray*} I(r) &\equiv& \sum_{n=0}^\infty \frac{(i r)^n}{n!}I_n \\ &=& i\int_0^{2\pi} e^{i (r+1) x}dx \\ &=& \frac{e^{2\pi i r}-1}{1+r} \\ &=& \sum_{n=0}^\infty \left(\sum_{k=0}^{n-1}(-1)^{k}\frac{(2\pi i)^{n-k}}{(n-k)!}\right)r^n. \end{eqnarray*}$$ (The last series is the Cauchy product of the Taylor series for $1/(1+r)$ and the Taylor series for $e^{2\pi i r}-1$.) Therefore, $$\begin{equation*} \int_0^{2\pi} x^n e^{i x}\, dx = \frac{n!}{i^{n+1}}\sum_{k=0}^{n-1} (-1)^{k} \frac{(2\pi i)^{n-k}}{(n-k)!}.\tag{1} \end{equation*}$$ By taking the real and imaginary part of (1) we can find explicit formulas for the original integrals: $$\begin{eqnarray*} \int_0^{2\pi} x^n \cos x\, dx &=& n!\sum_{m=0}^{\lfloor\frac{n-2}{2}\rfloor} (-1)^m\frac{(2\pi)^{n-2m-1}}{(n-2m-1)!} \\ \int_0^{2\pi} x^n \sin x\, dx &=& n!\sum_{m=0}^{\lfloor\frac{n-1}{2}\rfloor} (-1)^{m+1}\frac{(2\pi)^{n-2m}}{(n-2m)!}. \end{eqnarray*}$$

-
Nice example indeed. I think calculating integrals in this way is a (new?) method. Someone who knows integral transformations and read this topic could say more. –  vesszabo Aug 20 '13 at 9:40
Thanks @vesszabo. I would say this is more of a "trick of the trade" than a new method. As Ragib Zaman mentions in the comments, with this method we are simply calculating the generating function of the integrals of interest. –  user26872 Aug 20 '13 at 12:25

Nothing magic :-) (if I understand the question correctly.) If $f(r)$ is an analytic function around $r_0=0$ then the Taylor expansion is unique. It yields, $$f(r)=\sum_{n=1}^{\infty}c_nr^n,$$ where $r\in(-a,a)$, $a>0$. So, if $$f(r)=\sum_{n=1}^{\infty}c_n d_n r^n$$ is another power series representation of $f$, then $c_n=c_n d_n$, i.e., $d_n=1$ if $c_n\neq 0$, anything is $d_n$ (integral or something else).

-
This appears just as irrelevant tot he question as was the answer that was deleted some time ago. Quite possibly you were confused by someone else's edit to my question? –  Michael Hardy Aug 16 '13 at 16:26
@MichaelHardy Sorry, the situation is not clear for me, possibly I misunderstand something. I was attracted to this question, because " This question has an open bounty worth +50 reputation from Michael Hardy ending in 2 days. This question has not received enough attention." I think (if I don't misunderstand the question) that my answer is a one possible answer. I have not known about an earlier (and deleted) answer. Oh, I'm reading now your Later edit. All right. Please, try to clarify your problem, or if you want this, delete it. It's your decision. :-) –  vesszabo Aug 16 '13 at 16:49
OK, I hope the edits I just did clarify the question. –  Michael Hardy Aug 16 '13 at 17:13
@MichaelHardy To discover a new theorem (or method) is not easy. Try to find an other example. I begin to understand your question :-) I don't know how more generally could be described this method as you did in the last two lines of your question. It's too general. In a special case you could find something interesting, see e.g. the answer of anon. (These my ideas only, maybe help you.) –  vesszabo Aug 17 '13 at 18:53

$$\sum_{n=0}^\infty \frac{r^n}{n!} \int_0^\infty x^n e^{-x} \; dx = \sum_{n=0}^\infty \frac{r^n}{n!} \left(\int_0^\infty x^n e^{-x} \; dx\right) = \sum_{n=0}^\infty \frac{r^n}{n!} \Gamma(n+1) = \sum_{n=0}^\infty \frac{r^n}{n!} n! = \sum_{n=0}^\infty r^n$$

Where $\Gamma(n+1)$ is the Gamma function. I hope this is right!

-
This doesn't answer the question. –  Pedro Tamaroff Aug 19 '13 at 1:31
In other words, as far as I can see, this simplification works because you've got the Gamma function in there & it reduces to $n!$ leading to this simplification, & the reason a commenter noticed it relates to the moment-generating function method is because the gamma function is related to it also: en.wikipedia.org/wiki/… So I don't see anything general here. –  bolbteppa Aug 19 '13 at 1:32
I think it does the question, it's isolated by the fact the Gamma function is in there, though again it's part of a broad class of integrals involving the gamma function - such as the normal distribution... –  bolbteppa Aug 19 '13 at 1:33
My point is you haven't read what Michael is asking. –  Pedro Tamaroff Aug 19 '13 at 1:36
You didn't answer his question in any way. –  JLA Aug 19 '13 at 3:30


text:
# Subset of Real Numbers is Interval iff Connected

## Theorem

Let the real number line $\R$ be considered as a topological space.

Let $S$ be a subspace of $\R$.

Then $S$ is connected if and only if $S$ is an interval of $\R$.

That is, the only subspaces of $\R$ that are connected are intervals.

## Proof

From Rule of Transposition, we may replace the only if statement by its contrapositive.

Therefore, the following suffices:

### Sufficient Condition

Suppose $S$ is an interval of $\R$.

Suppose further that $A \mid B$ is a separation of $S$.

Let $a \in A, b \in B$.

Without loss of generality that $a < b$.

Since $a, b \in S$, and $S$ is an interval, $\left[{a \,.\,.\, b}\right] \subseteq S$.

Let $A' = A \cap \left[{a \,.\,.\, b}\right]$ and $B' = B \cap \left[{a \,.\,.\, b}\right]$.

Then:

 $\displaystyle A' \cup B'$ $=$ $\displaystyle \left({A \cap \left[{a \,.\,.\, b}\right]}\right) \cup \left({B \cap \left[{a \,.\,.\, b}\right]}\right)$ $\displaystyle$ $=$ $\displaystyle \left({A \cup B}\right) \cap \left[{a \,.\,.\, b}\right]$ Intersection Distributes over Union $(1):\quad$ $\displaystyle \implies \ \$ $\displaystyle A' \cup B'$ $=$ $\displaystyle \left[{a \,.\,.\, b}\right]$ Intersection with Subset is Subset

By the definition of a separation, both $A$ and $B$ are closed in $S$.

Hence by Closed Set in Topological Subspace, $A'$ and $B'$ are also closed in $\left[{a \,.\,.\, b}\right]$.

From Closed Set in Topological Subspace: Corollary, $A'$ and $B'$ are closed in $\R$.

Now, since $B' \ne \varnothing$, and $B$ is bounded below (by, for example, $a$), by the Continuum Property $b' := \inf \left({B'}\right)$ exists, and $b' \ge a$.

We have that $B'$ is closed in $\R$

$b' \in B'$

Since $a \in A'$ and $A \cap B = \varnothing$, it follows that $b' > a$.

Now let $A'' = A' \cap \left[{a \,.\,.\, b'}\right]$.

Using the same argument as for $B'$, we have that $a'' = \sup \left({A''}\right)$ exists, that $a'' \in A''$ and also $a'' < b'$.

Now $\left({a'' \,.\,.\, b'}\right) \cap A' = \varnothing$ or $a''$ would not be an upper bound for $A''$.

Similarly, $\left({a'' \,.\,.\, b'}\right) \cap B' = \varnothing$ or $b'$ would not be a lower bound for $B''$.

Thus $\left({a'' \,.\,.\, b'}\right) \cap \left({A' \cup B'}\right) = \varnothing$.

But since $a < a'' < b' < b$, we also have:

$\left({a'' \,.\,.\, b'}\right) \subseteq \left[{a \,.\,.\, b}\right]$, and
$\left({a'' \,.\,.\, b'}\right)$ is non-empty.

So, there is an element $z \in \left({a'' \,.\,.\, b'}\right)$, and hence in $\left[{a \,.\,.\, b}\right]$, which is not in $A' \cup B'$.

This contradicts $(1)$ above, which says that we have $A' \cup B' = \left[{a \,.\,.\, b}\right]$.

From this contradiction it follows that there can be no such separation $A \mid B$ on the interval $S$.

Therefore, by definition, $S$ is connected.

$\Box$

### Necessary Condition

Suppose $S$ is not an interval of $\R$.

Then $\exists x, y \in S$ and $z \in \R \setminus S$ such that $x < z < y$.

Consider the sets $S \cap \left({-\infty \,.\,.\, z}\right)$ and $S \cap \left({z \,.\,.\, +\infty}\right)$.

Then $S \cap \left({-\infty \,.\,.\, z}\right)$ and $S \cap \left({z \,.\,.\, +\infty}\right)$ are open by definition of the subspace topology on $S$.

Neither is empty because they contain $x$ and $y$ respectively.

They are disjoint, and their union is $S$, since $z \notin S$.

Therefore $S \cap \left({-\infty \,.\,.\, z}\right) \mid S \cap \left({z \,.\,.\, +\infty}\right)$ is a separation of $S$.

It follows by definition that $S$ is disconnected.

$\blacksquare$


text:
deriving-compat-0.4.3: Backports of GHC deriving extensions

Copyright (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan Scott Template Haskell None Haskell2010

Data.Ix.Deriving

Description

Exports functions to mechanically derive Ix instances.

Synopsis

# Ix

deriveIx :: Name -> Q [Dec] Source #

Generates a Ix instance declaration for the given data type or data family instance.

Generates a lambda expression which behaves like range (without requiring an Ix instance).

Generates a lambda expression which behaves like unsafeIndex (without requiring an Ix instance).

Generates a lambda expression which behaves like inRange (without requiring an Ix instance).

# deriveIx limitations

Be aware of the following potential gotchas:

• Type variables of kind * are assumed to have Ix constraints. If this is not desirable, use makeRange or one of its cousins.


text:
# 40 CFR § 75.32 - Determination of monitor data availability for standard missing data procedures.

§ 75.32 Determination of monitor data availability for standard missing data procedures.

(a) Following initial certification of the required SO2, CO2, O2, or moisture monitoring system(s) at a particular unit or stack location (i.e., the date and time at which quality assured data begins to be recorded by CEMS(s) at that location), the owner or operator shall begin calculating the percent monitor data availability as described in paragraph (a)(1) of this section, and shall, upon completion of the first 720 quality-assured monitor operating hours, record, by means of the automated data acquisition and handling system, the percent monitor data availability for each monitored parameter. Similarly, following initial certification of the required NOX-diluent, NOX concentration, or flow monitoring system(s) at a unit or stack location, the owner or operator shall begin calculating the percent monitor data availability as described in paragraph (a)(1) of this section, and shall, upon completion of the first 2,160 quality-assured monitor operating hours, record, by means of the automated data acquisition and handling system, the percent monitor data availability for each monitored parameter. Notwithstanding these requirements, if three years (26,280 clock hours) have elapsed since the date and hour of initial certification and fewer than 720 (or 2,160, as applicable) quality-assured monitor operating hours have been recorded, the owner or operator shall begin recording the percent monitor data availability. The percent monitor data availability shall be calculated for each monitored parameter at each unit or stack location, as follows:

(1) Prior to completion of 8,760 unit or stack operating hours following initial certification, the owner or operator shall, for the purpose of applying the standard missing data procedures of § 75.33, use Equation 8 to calculate, hourly, percent monitor data availability.

$\begin{array}{c}\text{Percent}\\ \text{monitor data}\\ \text{availability}\end{array}=\frac{\begin{array}{c}\text{Total unit operating hours}\\ \text{for which quality-assured data}\\ \text{were recorded since certification}\end{array}}{\begin{array}{c}\text{Total unit operating}\\ \text{hours since certification}\end{array}}×100\phantom{\rule{0ex}{0ex}}\text{(Eq. 8)}$

(2) Upon completion of 8,760 unit (or stack) operating hours following initial certification and thereafter, the owner or operator shall, for the purpose of applying the standard missing data procedures of § 75.33, use Equation 9 to calculate hourly, percent monitor data availability. Notwithstanding this requirement, if three years (26,280 clock hours) have elapsed since initial certification and fewer than 8,760 unit or stack operating hours have been accumulated, the owner or operator shall begin using a modified version of Equation 9, as described in paragraph (a)(3) of this section.

$\begin{array}{c}\text{Percent}\\ \text{monitor data}\\ \text{availability}\end{array}=\frac{\begin{array}{c}\text{Total unit operating hours}\\ \text{for which quality-assured data}\\ \text{were recorded during previous}\\ \text{8,760 unit operating hours}\end{array}}{\begin{array}{c}\\ \end{array}8,760}×100\phantom{\rule{0ex}{0ex}}\text{(Eq. 9)}$

(3) When calculating percent monitor data availability using Equation 8 or 9, the owner or operator shall include all unit operating hours, and all monitor operating hours for which quality-assured data were recorded by a certified primary monitor; a certified redundant or non-redundant backup monitor or a reference method for that unit; or by an approved alternative monitoring system under subpart E of this part. No hours from more than three years (26,280 clock hours) earlier shall be used in Equation 9. For a unit that has accumulated fewer than 8,760 unit operating hours in the previous three years (26,280 clock hours), replace the words “during previous 8,760 unit operating hours” in the numerator of Equation 9 with “in the previous three years” and replace “8,760” in the denominator of Equation 9 with “total unit operating hours in the previous three years.” The owner or operator of a unit with an SO2 monitoring system shall, when SO2 emissions are determined in accordance with § 75.11(e)(1) or (e)(2), exclude hours in which a unit combusts only gaseous fuel from calculations of percent monitor data availability for SO2 pollutant concentration monitors, as provided in § 75.30(d).

(b) The monitor data availability shall be calculated for each hour during each missing data period. The owner or operator shall record the percent monitor data availability for each hour of each missing data period to implement the missing data substitution procedures.

[58 FR 3701, Jan. 11, 1993, as amended at 60 FR 26529, 26567, May 17, 1995; 61 FR 59160, Nov. 20, 1996; 64 FR 28602, May 26, 1999; 67 FR 40434, June 12, 2002; 70 FR 28680, May 18, 2005; 73 FR 4346, Jan. 24, 2008; 76 FR 17311, Mar. 28, 2011]


text:
# Chapter 15 Machine Learning

One of the utopian visions of an advanced audit analytics shop is the application of predictive modeling to help drive audit effectiveness. Machine learning (and data science generally) is an advanced and complex topic, and while it is rooted in statistical methods, can be summarized as “using a computer to discover patterns in a dataset.”

Machine learning employs the use of algorithms, which are statistical methods to optimize one specific goal: error. Specifically, an algorithm will try to minimize error on a training dataset - that is, each and every time the algorithm makes a prediction, it compares its estimated result against the truth. As it performs the comparison and iterates continuously to reduce the error for each individual sample, the algorithm is also ensuring it is generally applicable for an entire training population.

Similar to how you don’t need to understand the thermodynamics of a combustion engine to drive a car, you don’t need to necessarily understand how to make an algorithm to use machine learning. However, as an auditor, you still need to understand the tools and algorithm intentions - you will be a lot more fruitful using a screwdriver to insert a screw instead of a hammer.

To successfully apply machine learning, an audit practitioner needs to clearly state what needs to be predicted, with what data, and how to evaluate it. The real work is understanding the problem and the data, wrangling it into a proper format, choosing the right algorithm to apply against the data, and interpreting the results. It doesn’t take a lot to train a model (really!).

Lets use an example to help illustrate how you could use machine learning in an audit situation. We will use the following packages:

library(tidyverse)
library(tidymodels)
library(tidytext)
library(tm)
library(rpart)
library(rpart.plot)
library(gt) # Used for formatting table outputs

set.seed(12345)

## 15.1 Goal: Predict an account class

Lets say we were working on an audit to help determine if a transaction will be eventually charged against the correct account class. Specifically, lets see if we can predict if a transaction is a fixed asset, based on the description field itself.

First, we’ll get some information from our dataset, which will act as our training data. We collect a bit of information, which includes the description of a GL account, as well as whether or a specific journal entry was booked to a fixed asset account.

description <- c('New computer', 'New computer to replace old unit', 'New computer user training class', 'Computer repair')
is_fixed_asset <- as.factor(c(TRUE, TRUE, FALSE, FALSE))
je_num <- 1:length(description)

transactions <- data.frame(je_num,
description,
is_fixed_asset)

transactions
##   je_num                      description is_fixed_asset
## 1      1                     New computer           TRUE
## 2      2 New computer to replace old unit           TRUE
## 3      3 New computer user training class          FALSE
## 4      4                  Computer repair          FALSE

We will explore the use of a tree-based basic decision tree, predicting a classification outcome. Different approaches exist to predict outcomes, including decision trees and neural networks. Predictions can either take the form of predicting a class or label via classification, or a number via regression.

A decision tree is one of the easiest to interpret, as it logically follows a flow - start a the top and answer a series of ‘yes-no’ questions to determine what the final result should be. You can see there are multiple words that describe each transaction.

In our example, “computer” is the running theme here, but they all seem to have different words that describe the transaction itself. We plan on using these words as our ‘yes-no’ branches to help us predict our outcomes. This is a classification problem.

## 15.2 Generating features

Any algorithm requires the generation of features - that is, indicators within the data that the algorithm can use to leverage and predict the outcome. Features typically need to be generated and be made into its own column, before they can leveraged in a prediction.

In our example, we have several full sentences. Unfortunately, if we feed this into the model, the whole sentence is actually interpreted as one whole feature, which isn’t terribly useful; the individual words themselves are more important for prediction. To use the individual words, we need to tokenize the sentence - that is, break each sentence into individual words, so they can be used as part of our predictions. The tidytext package is great for this, as it helps us break down each word into its own sentence.

First, lets create a lost of tokens - i.e. what was the unique word within each description, and how often did each word occur.

words <- transactions %>%
unnest_tokens(word, description) %>%
count(je_num, word, sort = TRUE)

words
##   je_num     word n
## 1      1 computer 1
## 2      1      new 1
## 3      2 computer 1
## 4      2      new 1
## 5      2      old 1
##  [ reached 'max' / getOption("max.print") -- omitted 10 rows ]

We can see that each journal entry line is now repeated for each and every unique word. However, we notice some filler words, which don’t add a lot of value in our predictions. There are called ‘stop words’ which are common words in the English language - great for communicating verbally, but computers don’t need such formalities.

Here were the stop words detected:

transactions %>%
unnest_tokens(word, description) %>%
filter(word %in% stop_words$word) ## je_num is_fixed_asset word ## 1 1 TRUE new ## 2 2 TRUE new ## 2.2 2 TRUE to ## 2.4 2 TRUE old ## 3 3 FALSE new We could make our own list of stop words - for now, lets drop the default suggestions. words <- transactions %>% unnest_tokens(word, description) %>% filter(!word %in% stop_words$word) %>% # Remove stop words.
count(je_num, word, sort = TRUE)

words
##   je_num     word n
## 1      1 computer 1
## 2      2 computer 1
## 3      2  replace 1
## 4      2     unit 1
## 5      3    class 1
##  [ reached 'max' / getOption("max.print") -- omitted 5 rows ]

With a cleaned layout, we can now better see the valuable words per journal entry. However, its a bit difficult to see what words were shared between each journal entry, so lets lay it out wide and aggregate it so each word is in its own column, aligned with the journal entry.

wide_words <- words %>%
pivot_wider(id_cols = je_num, names_from = word, values_from = n)

wide_words
## # A tibble: 4 x 8
##   je_num computer replace  unit class training  user repair
##    <int>    <int>   <int> <int> <int>    <int> <int>  <int>
## 1      1        1      NA    NA    NA       NA    NA     NA
## 2      2        1       1     1    NA       NA    NA     NA
## 3      3        1      NA    NA     1        1     1     NA
## 4      4        1      NA    NA    NA       NA    NA      1

Excellent, lets join this back to our dataset and do the final cleanup to start making predictions.

trans_listing <- transactions %>%
inner_join(wide_words, by = 'je_num')

trans_listing %>%
gt() # For making our output prettier
je_num description is_fixed_asset computer replace unit class training user repair
1 New computer TRUE 1 NA NA NA NA NA NA
2 New computer to replace old unit TRUE 1 1 1 NA NA NA NA
3 New computer user training class FALSE 1 NA NA 1 1 1 NA
4 Computer repair FALSE 1 NA NA NA NA NA 1

## 15.3 Training the model

Before we can make predictions, we need to consider what we features we want to use as part of training. Training a model uses the features we’ve generated to discover a pattern and create a model that best fits the training data. Lets go through a few of these columns to determine what to retain and remove:

• Our je_num is not useful because it is simply a reference, and it would not make sense that a number in a journal entry could dictate the outcome.
• The original description, in its original form, would not be useful. We do not expect to see some of these whole sentences verbatim repeated again.
• The individual words that were generated from the description, make sense to keep, as they will be part of our predictive model.

We also need to do some final cleanup:

• The is_fixed_asset will be what we want to predict. In this case, it should be a factor, as we are guessing a state outcome as part of the classification exercise.
• Many algorithms tend to break when they see NAs. In our dataset, we understand that NA means that the word was not seen, so a zero as a replacement will suffice.
training_data <- trans_listing %>%
select(-c(je_num, description)) %>%
mutate(is_fixed_asset = as.factor(is_fixed_asset)) %>%
replace(is.na(.), 0)

training_data %>%
gt()
is_fixed_asset computer replace unit class training user repair
TRUE 1 0 0 0 0 0 0
TRUE 1 1 1 0 0 0 0
FALSE 1 0 0 1 1 1 0
FALSE 1 0 0 0 0 0 1

There are several different ways to call a model. We will use the tidymodels package, which helps us declare which model we plan on using, the algorithm within the model, and the outcome.

dt_model <- decision_tree(min_n = 1) %>%
set_engine("rpart") %>%
set_mode("classification")

To train a model, we simply take the model we want to use (as determined above using the decision_tree() specification), the outcome is_fixed_asset, and the data source we want to train on.

dt_fit <- dt_model %>%
fit(is_fixed_asset ~ ., data = training_data)

dt_fit
## parsnip model object
##
## Fit time:  7ms
## n= 4
##
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
##
##  1) root 4 2 FALSE (0.5000000 0.5000000)
##    2) replace< 0.5 3 1 FALSE (0.6666667 0.3333333)
##      4) class>=0.5 1 0 FALSE (1.0000000 0.0000000) *
##      5) class< 0.5 2 1 FALSE (0.5000000 0.5000000)
##       10) repair>=0.5 1 0 FALSE (1.0000000 0.0000000) *
##       11) repair< 0.5 1 0 TRUE (0.0000000 1.0000000) *
##    3) replace>=0.5 1 0 TRUE (0.0000000 1.0000000) *

Without much fanfare, we get a model we can now use. Lets look into a bit more detail as to how the splits take place in our trained model:

rpart.plot(dt_fit\$fit)

Reading a decision tree takes some orienting. The way to read the root (the top level decision) is to say “is the value of replace less than 0.5?” - yes to go left, and no to go right. Another way to interpret the node is “did the word replace occur less than 0.5 times?” If it did happen less than 0.5 times (which is 0 in our dataset), then go left. However, if the word ‘replace’ had a value of more than 0.5, which also means the word occurred at least once, then go right - in this case the predicted outcome for is_fixed_asset will be TRUE.

The branches, aka the items below the root, are decided via a gini impurity metric, where the goal is to pose a question that evenly splits the outcomes into 50/50 buckets. The more evenly split the information, the more ‘information gain’ was acquired from the split.

## 15.4 Making predictions

Now that we have a trained model, lets try to make some predictions. Lets say we had three more sentences that were tokenized into: ‘class repair,’ ‘replace repair,’ ‘replace class,’ ‘computer computer computer,’ and simply nothing.

If we went through the process again to tokenize, our new dataset (holdout, since it was not used in training) would look like this:

holdout_data <- data.frame(matrix(nrow = 1, ncol = ncol(training_data) -1))
colnames(holdout_data) <- names(training_data)[2:ncol(training_data)]

holdout_data[1,] <- c(0, 0, 0, 1, 0, 0, 1)
holdout_data[2,] <- c(0, 1, 0, 0, 0, 0, 1)
holdout_data[3,] <- c(0, 1, 0, 1, 0, 0, 0)
holdout_data[4,] <- c(3, 0, 0, 0, 0, 0, 0)
holdout_data[5,] <- c(0, 0, 0, 0, 0, 0, 0)

holdout_data %>%
gt()
computer replace unit class training user repair
0 0 0 1 0 0 1
0 1 0 0 0 0 1
0 1 0 1 0 0 0
3 0 0 0 0 0 0
0 0 0 0 0 0 0

And the fun part - lets run our predictions through the model we created:

dt_predict <- predict(dt_fit, holdout_data)

dt_predict <- bind_cols(holdout_data, dt_predict)

dt_predict %>%
gt()
computer replace unit class training user repair .pred_class
0 0 0 1 0 0 1 FALSE
0 1 0 0 0 0 1 TRUE
0 1 0 1 0 0 0 TRUE
3 0 0 0 0 0 0 TRUE
0 0 0 0 0 0 0 TRUE

Some of the predictions could be conferred as such, but whats up with the zero-words example that predicted it was a fixed asset?

## 15.5 What to explore next

In our extremely simplistic example, we overlooked several things that would not be done on a real data set.

• A larger main dataset needs to be split into a training dataset and a test dataset. The creation of the model should be done on the training data, and its performance should be evaluated against the test dataset. The performance will allow you to evaluate just how good the model is. If this is not done, then your model is simply overfitting, which is the same as memorizing a dataset, and has no ability to generalize against a normal population.

• For training datasets - sizes matter! An extremely small training set means the model hasn’t seen enough nuances in the data to understand it. Since these seven words never mapped to anything in the decision tree, it always evaluated as TRUE.

• The quality of a training set also matters greatly, as the training dataset is considered truth. Its very difficult to tell a computer to ignore any mislabelled data, as it has no capacity to know what is mislabelled.

• The features used in training the model must also be the features for the prediction. For example, if we start seeing the word “Mac” instead of “Computer,” we either need to drop the word “Mac” before running our prediction, or retrain our model with these new keywords. In our case, since we’re using individual words, additional work needs to be done to align the words in the same format as our training dataset. This could be solved by retraining the model as new features develop.

• From an algorithm perspective, a decision tree makes only one tree as its final outcome. However, there could have been a tree design that put another feature as the root and other trees below it. One way to address this weakness is to use random forest or xgboost, which are other tree-based algorithms that make many trees and make a final model based on a combination of the best tree made (ensemble).

• Some algorithms offer the ability to tune hyperparameters - that is, the ability to customize an algorithm to help tune and optimize itself. Various algorithms offer different options. For tree-base algorithms, it could be the condition of making each branch. For regression algorithms, it could be the size of a ‘step’ taken when testing a new formula to minimize error; larger steps may avoid local minimums, but may not find optimal minimums due to their lack of sensitivity. Tuning hyperparameters is so powerful, that using just a single algorithm but a well-tuned model can yield significantly better results.

There are several other machine learning algorithms out there, as well as regression-based predictions. There is “no free lunch,” and no singular model will work in every situation. The beauty of a code-based approach is that you can try them all in a relatively effective manner.

In our example, we used text miniming as part of our feature generation. If you wanted to fully explore text mining, read Text Mining with R by Julia Silge & David Robinson. We only explored the words themselves - there are additional branches of text mining that explore topic modelling, stemming, sentiment, among others approaches.


text:
# Electron cyclotron resonance

Electron cyclotron resonance

Electron cyclotron resonance is a phenomenon observed both in plasma physics and condensed matter physics. An electron in a static and uniform magnetic field will move in a circle due to the Lorentz force. The circular motion may be superimposed with a uniform axial motion, resulting in a helix, or with a uniform motion perpendicular to the field, e.g., in the presence of an electrical or gravitational field, resulting in a cycloid. The angular frequency (ω = 2πf ) of this cyclotron motion for a given magnetic field strength B is given (in SI units)[1] by

$\omega_{ce}=\frac{eB}{m}$.

where e is the elementary charge and m is the mass of the electron. For the commonly used microwave frequency 2.45 GHz and the bare electron charge and mass, the resonance condition is met when B = 875 G = 0.0875 T. For particles of charge q, rest mass m0 moving at relativistic speeds v, the formula needs to be adjusted according to the special theory of relativity to:

$\omega_{ce}=\frac{qB}{\gamma\cdot m_0}$

where

$\gamma=\frac{1}{\sqrt{ 1 - (v/c)^2 }}$.

## In plasma physics

An ionized plasma may be efficiently produced or heated by superimposing a static magnetic field and a high-frequency electromagnetic field at the electron cyclotron resonance frequency. In the toroidal magnetic fields used in magnetic fusion energy research, the magnetic field decreases with the major radius, so the location of the power deposition can be controlled within about a centimeter. Furthermore, the heating power can be rapidly modulated and is deposited directly into the electrons. These properties make electron cyclotron heating a very valuable research tool for energy transport studies. In addition to heating, electron cyclotron waves can be used to drive current. The inverse process of electron cyclotron emission can be used as a diagnostic of the radial electron temperature profile.

## ECR ion sources

Since the early 1980s, following the award-winning pioneering work done by Dr. Richard Geller,[2] Dr. Claude Lyneis, and Dr. H. Postma;[3] respectively from French Atomic Energy Commission, Lawrence Berkeley National Laboratory and the Oak Ridge National Laboratory, the use of electron cyclotron resonance for efficient plasma generation, especially to obtain large numbers of multiply charged ions, has acquired a unique importance in various technological fields. Many diverse activities depend on electron cyclotron resonance technology, including

The ECR ion source makes use of the electron cyclotron resonance to heat a plasma. Microwaves are injected into a volume, at the frequency corresponding to the electron cyclotron resonance defined by a magnetic field applied to a region inside the volume. The volume contains a low pressure gas. The microwaves heat free electrons in the gas which in turn collide with the atoms or molecules of the gas in the volume and cause ionization. The ions produced correspond to the gas type used. The gas may be pure, a compound gas, or can be a vapour of a solid or liquid material.

ECR ion sources are able to produce singly charged ions with high intensities (e.g. H+ and D+ ions of more than 100 mA (electrical) in DC mode[5] using a 2.45 GHz ECR ion source).

For multiply charged ions, the ECR ion source has the advantage that it is able to confine the ions for long enough for multiple collisions to take place (leading to multiple ionization) and that the low gas pressure in the source avoids recombination. The VENUS ECR ion source at Lawrence Berkeley National Laboratory has produced in intensity of 0.25 mA (electrical) of Bi29+.[6]

Some of these industrial fields would not even exist without the use of this fundamental technology, which makes electron cyclotron resonance ion and plasma sources one of the enabling technologies of today's world.

## In condensed matter physics

Within a solid the mass in the cyclotron frequency equation above is replaced with the effective mass tensor $\begin{Vmatrix}m^*\end{Vmatrix}$. Cyclotron resonance is therefore a useful technique to measure effective mass and Fermi surface cross-section in solids. In a sufficiently high magnetic field at low temperature in a relatively pure material

$\begin{matrix}\omega_{ce} > 1/\tau \\ \hbar \omega_{ce} > k_B T \\ \end{matrix}$

where τ is the carrier scattering lifetime, kB is Boltzmann's constant and T is temperature. When these conditions are satisfied, an electron will complete its cyclotron orbit without engaging in a collision, at which point it is said to be in a well-defined Landau level.

## References

1. ^ In SI units, the elementary charge e has the value 1.602×10-19 coulombs, the mass of the electron m has the value 9.109×10–31 kilograms, the magnetic field B is measured in teslas, and the angular frequency ω is measured in radians per second.
2. ^ R. Geller, Peroc. 1st Int. Con. Ion Source, Saclay, p. 537, 1969
3. ^ H. Postma, Phys. Lett. A, 31, p. 196, 1970
4. ^ Handbook of Ion Source, B. Wolf, ISBN 0-8493-2502-1, p136-146
5. ^ R. Gobin et al., Saclay High Intensity Light Ion Source Status The Euro. Particle Accelerator Conf. 2002, Paris, France, June 2002, p1712
6. ^ VENUS reveals the future of heavy-ion sources CERN Courier, 6 May 2005

Wikimedia Foundation. 2010.

### Look at other dictionaries:

• electron cyclotron resonance — elektronų ciklotroninis rezonansas statusas T sritis fizika atitikmenys: angl. electron cyclotron resonance vok. Elektronenzyklotronresonanz, f rus. электронный циклотронный резонанс, m pranc. résonance cyclotronique électronique, f …   Fizikos terminų žodynas

• Electron Cyclotron Resonance — Zyklotronresonanz bezeichnet die resonante Absorption elektromagnetischer Wellen durch geladene Teilchen (z. B. durch freie Elektronen oder auch Elektronen in einem Festkörper), die sich in einem konstanten Magnetfeld befinden. Der Name leitet… …   Deutsch Wikipedia

• Electron paramagnetic resonance — (EPR) or electron spin resonance (ESR) spectroscopy is a technique for studying chemical species that have one or more unpaired electrons, such as organic and inorganic free radicals or inorganic complexes possessing a transition metal ion. The… …   Wikipedia

• Ion cyclotron resonance — is a phenomenon related to the movement of ions in a magnetic field. It is used for accelerating ions in a cyclotron, and for measuring the masses of an ionized analyte in mass spectrometry, particularly with Fourier transform ion cyclotron… …   Wikipedia

• Fourier transform ion cyclotron resonance — Infobox chemical analysis name = Fourier transform ion cyclotron resonance caption =A FTMS instrument at the Pacific Northwest National Laboratory, USA acronym = FTMS, FTICR classification =Mass spectrometry analytes = manufacturers = related =… …   Wikipedia

• Cyclotron — For other uses, see Cyclotron (disambiguation). A modern Cyclotron for radiation therapy …   Wikipedia

• résonance cyclotronique électronique — elektronų ciklotroninis rezonansas statusas T sritis fizika atitikmenys: angl. electron cyclotron resonance vok. Elektronenzyklotronresonanz, f rus. электронный циклотронный резонанс, m pranc. résonance cyclotronique électronique, f …   Fizikos terminų žodynas

• Résonance cyclotron — La résonance cyclotron électronique est un phénomène observé aussi bien en physique des plasmas qu en physique de la matière condensée. Un électron dans un champ magnétique statique et uniforme se déplace sur un cercle en raison de la force de… …   Wikipédia en Français

• electron tube — an electronic device that consists, typically, of a sealed glass bulb containing two or more electrodes: used to generate, amplify, and rectify electric oscillations and alternating currents. Also called electronic tube. Cf. gas tube, vacuum tube …   Universalium

• Electron capture dissociation — In mass spectrometry, electron capture dissociation (ECD) is a method of fragmenting gas phase ions for tandem mass spectrometric analysis (structural elucidation). ECD involves the direct introduction of low energy electrons to trapped gas phase …   Wikipedia


text:
# Ordered dithering

In this example (Lenna), the original photograph is shown on left. The version on the right shows the effect of quantizing it to 16 colors and dithering using the 8×8 ordered dithering pattern.
The characteristic 17 patterns of the 4×4 ordered dithering matrix can be seen clearly when used with only two colors, black and white. Each pattern is shown above the corresponding undithered shade.

Ordered dithering is an image dithering algorithm. It is commonly used to display a continuous image on a display of smaller color depth. For example, Microsoft Windows uses it in 16-color graphics modes. The algorithm is characterized by noticeable crosshatch patterns in the result.

## Threshold map

The algorithm reduces the number of colors by applying a threshold map M to the pixels displayed, causing some pixels to change color, depending on the distance of the original color from the available color entries in the reduced palette.

Threshold maps come in various sizes:

 ${\displaystyle {\frac {1}{4}}\times {\begin{bmatrix}0&2\\3&1\\\end{bmatrix}}}$ ${\displaystyle {\frac {1}{9}}\times {\begin{bmatrix}0&7&3\\6&5&2\\4&1&8\\\end{bmatrix}}}$ ${\displaystyle {\frac {1}{16}}\times {\begin{bmatrix}0&8&2&10\\12&4&14&6\\3&11&1&9\\15&7&13&5\\\end{bmatrix}}}$ ${\displaystyle {\frac {1}{64}}\times {\begin{bmatrix}0&48&12&60&3&51&15&63\\32&16&44&28&35&19&47&31\\8&56&4&52&11&59&7&55\\40&24&36&20&43&27&39&23\\2&50&14&62&1&49&13&61\\34&18&46&30&33&17&45&29\\10&58&6&54&9&57&5&53\\42&26&38&22&41&25&37&21\\\end{bmatrix}}}$

The map may be rotated or mirrored without affecting the effectiveness of the algorithm. This threshold map (for sides with length as power of two) is also known as an index matrix or Bayer matrix.[1]

Arbitrary size threshold maps can be devised with a simple rule: First fill each slot with a successive integers. Then reorder them such that the average distance between two successive numbers in the map is as large as possible, ensuring that the table "wraps" around at edges.[citation needed] For threshold maps whose dimensions are a power of two, the map can be generated recursively via:

${\displaystyle \mathbf {M} _{2n}={\frac {1}{(2n)^{2}}}\times {\begin{bmatrix}4\times \mathbf {M} _{n}&4\times \mathbf {M} _{n}+2\\4\times \mathbf {M} _{n}+3&4\times \mathbf {M} _{n}+1\end{bmatrix}}}$

The recursive expression can be calculated explicitly using only bit arithmetic:[2]

M(i, j) = bit_reverse(bit_interleave(bitwise_xor(i, j), i)) / n ^ 2

## Pre-calculated threshold maps

Rather than storing map as a matrix of ${\displaystyle n}$×${\displaystyle n}$ integers from 0 to ${\displaystyle n^{2}}$, depending on the exact hardware used to perform the dithering, it may be beneficial to pre-calculate the thresholds of the map. For this, the following formula can be used:

Mpre(i,j) = (Mint(i,j)+1) / n^2

This generates a standard threshold matrix.

for the 2×2 map:

 ${\displaystyle {\frac {1}{4}}\times {\begin{bmatrix}0&2\\3&1\\\end{bmatrix}}}$

this creates the pre-calculated map:

 ${\displaystyle {\begin{bmatrix}0.25&0.75\\1.0&0.5\\\end{bmatrix}}}$

Additionally, the subtraction with 0.5 can be done during pre-processing as well:

Mpre(i,j) = (Mint(i,j)+1) / n^2 - 0.5

creating the pre-calculated map:

 ${\displaystyle {\begin{bmatrix}-0.25&0.25\\0.5&0\\\end{bmatrix}}}$

Yet another option is to instead change the range of color values to range 0—${\displaystyle n^{2}}$ (for a ${\displaystyle n}$×${\displaystyle n}$). Note however that this operation has to happen once for every pixel, and should thus only be performed if storing the threshold map as integers (instead of floating point numbers) is crucial.

## Algorithm

The ordered dithering algorithm renders the image normally, but for each pixel, it offsets its color value with a corresponding value from the threshold map according to its location, causing the pixel's value to be quantized to a different color if it exceeds the threshold.

For most dithering purposes, it is sufficient to simply add the threshold value to every pixel, or equivalently, to compare that pixel's value to the threshold: if the value of a pixel is less than the number in the corresponding cell of the matrix, plot that pixel black, otherwise, plot it white.

This slightly increases the average brightness of the image, and causes almost-white pixels to not be dithered. This is not a problem when using a gray scale palette (or any palette where the relative color distances are (nearly) constant), and it is often even desired, since the human eye perceives differences in darker colors more accurately than lighter ones, however, it cause incorrect results especially when using a small or arbitrary palette, so proper offsetting should be preferred.

A color scale shown undithered and dithered. The reduced palette on the right has 8 red tones, 8 green tones, and their intersections, for a total of 64 colors, whereas the original image has 140 in both directions, for a total of 19600 colors. Notice how the bottom-right square is not dithered

The algorithm performs the following transformation on each color c of every pixel:

${\displaystyle c'=\mathrm {nearest\_palette\_color} {\mathopen {}}\left(c+r\times \left(M(x{\bmod {n}},y{\bmod {n}})-{\frac {1}{2}}\right){\mathclose {}}\right)}$

where M(i, j) is the threshold map on the i-th row and j-th column, c is the transformed color, and r is the amount of spread in color space. Assuming an RGB palette with 23N evenly chosen colors where each color (a triple of red, green and blue values) is represented by an octet from 0 to 255, one would typically choose:

${\displaystyle r\approx {\frac {255}{N}}}$

The values read from the threshold map should preferably scale into the same range as the minimal difference between distinct colors in the target palette.

Because the algorithm operates on single pixels and has no conditional statements, it is very fast and suitable for real-time transformations. Additionally, because the location of the dithering patterns always stays the same relative to the display frame, it is less prone to jitter than error-diffusion methods, making it suitable for animations. Because the patterns are more repetitive than error-diffusion method, an image with ordered dithering compresses better. Ordered dithering is more suitable for line-art graphics as it will result in straighter lines and fewer anomalies.

The size of the map selected should be equal to or larger than the ratio of source colors to target colors. For example, when quantizing a 24bpp image to 15bpp (256 colors per channel to 32 colors per channel), the smallest map one would choose would be 4×2, for the ratio of 8 (256:32). This allows expressing each distinct tone of the input with different dithering patterns.[citation needed]

## Notes

1. ^ Bayer, Bryce (June 11–13, 1973). "An optimum method for two-level rendition of continuous-tone pictures" (PDF). IEEE International Conference on Communications. 1: 11–15. Archived from the original (PDF) on 2013-05-12.
2. ^ Joel Yliluoma. “Arbitrary-palette positional dithering algorithm


text:
## Exact Ground State Energy of Hubbard Rings in the Atomic Limit

##### Authors
Hodge, W. B.
Holzwarth, N. A. W.
Kerr, W. C.
##### Description
Using a straightforward extension of the analysis of Lieb and Wu, we derive a simple analytic form for the ground state energy of a one-dimensional Hubbard ring in the atomic limit. This result is valid for an \textit{arbitrary} number of lattice sites $L$ and electrons $N \leq L$. Furthermore, our analysis, including an application of the theory of stochastic matrices, provides insight into the degeneracy and spin properties of the ground states in the atomic limit. We give numerical results which illustrate how the atomic limit is approached.
Comment: 8 pages, 10 figure files for 6 figures
##### Keywords
Condensed Matter - Strongly Correlated Electrons


text:
# reference request – The Guinand-Weil categorical formulation for Hecke characters Answer

Hello expensive customer to our community We will proffer you an answer to this query reference request – The Guinand-Weil categorical formulation for Hecke characters ,and the respond will breathe typical by documented data sources, We welcome you and proffer you fresh questions and solutions, Many customer are questioning concerning the respond to this query.

reference request – The Guinand-Weil categorical formulation for Hecke characters

The Guinand-Weil formulation for the Riemann zeta operate is
commence{aligned}&Phi (1)+Phi (0)-sum _{rho }Phi (rho )={}&sum _{p,m}{frac {log(p)}{p^{m/2}}}{Big (}F(log(p^{m}))+F(-log(p^{m})){Big )}-{frac {1}{2pi }}int _{-infty }^{infty }varphi (t)Psi (t),dtend{aligned}

the place $$rho$$ runs over the nontrivial zeros of the Riemann zeta operate, $$p$$ runs over the primes, $$m$$ runs over the constructive integers, $$F$$ is a quickly lowering operate, and $$Phi(1/2+it)=varphi(t)$$ is the Fourier remodel of $$F$$.

To quote Wikipedia:

More usually, the Riemann zeta operate and the L-series can breathe changed by the Dedekind zeta operate of an algebraic quantity bailiwick or a Hecke L-series. The sum over primes then will get changed by a sum over prime beliefs.

Q: What is the Guinand-Weil formulation for Hecke L-functions, the place there’s a sum over Hecke L-function zeros of the Fourier remodel of a quickly lowering operate on the LHS, and a summation over prime beliefs on the RHS?

we’ll proffer you the answer to reference request – The Guinand-Weil categorical formulation for Hecke characters query by way of our community which brings all of the solutions from a number of dependable sources.


text:
# Homework Help: Stats/thermal question

1. Jan 26, 2006

### ak416

Random walk in one dimension. A person (say, in an unstable state of mind/body) is moving in
one dimension, with coordinate x, starting at x = 0. Assume: i.) that s/he moves in steps of length
l, ii.) that the probability that s/he takes a step to the left is p, while the probability of taking a
step to the right is q = 1 − p and iii.) that all the steps are independent (i.e. the probability of
taking the n + 1-th step left or right is independent on what the previous n steps were).

One of the questions ask: Find the average number of steps to the right, <nR>, taken after N steps.

This is what I got:
<nR> = sum i=0toN i*(N choose i) * p^(i) * (1-p)^(N-i)

A played around with it but i cant seem to get it into a nicer form. Other questions then ask for the variance and to compare it to the mean, so im sure i have to somehow eliminate the summation sign. There's a hint saying to use the fact that p d/dp(p^n) = np^n. Is there a way to simplify this?

Last edited: Jan 26, 2006
2. Jan 26, 2006

### 0rthodontist

Well, the way you set it up (if you're sure that's what the question is asking) that is just the mean of a binomial distribution with parameters N and p.

3. Jan 26, 2006

### ak416

ya i know, i used the binomial distribution formula to come up with that formula. I think thats the best i can do. I have a better question. What is the limit as n approaches infinity? Because one of the other questions asks what the large N limit is for the ratio Var(nR) / <nR> . I managed to derive the formula for Var(nR) to be p*d/dp(<nR>) - <nR>^2 , so the limit im looking for is (p*d/dp(<nR>))<nR> - <nR> , so as a start I would like to find the limit for large N of this <nR>. Anyone?

4. Jan 26, 2006

### ak416

my guess is p * N but how do i derive that mathematically?

5. Jan 26, 2006

### ak416

actually i think i messed up on the d/dp part, forgot to take into account that 1-p depends on p! If anyone can help me figure out a nice formula for the variance that would be great.

6. Jan 26, 2006

### 0rthodontist

Well, it is p * N and the variance is Np(1 - p). John E. Freund's Mathematical Statistics gives proofs, but your book also probably does that. Never mind; I withdraw from this.

Last edited: Jan 26, 2006
7. Jan 27, 2006

### ak416

Ya thanks, i was looking through my stats notes and saw the derivations. Im gonna try finishing up the other problems now. Assignment is due in the morning!


text:
## Dave Futer’s talk at AMS Meeting in Lawrence, KS

This Friday, March 30, Dave Futer is speaking in the special session on Geometric Topology and Group Theory at the AMS Central Section Meeting in Lawrence, KS.

Title: Cusp geometry of fibered 3-manifolds

Abstract: Let $F$ be a surface with punctures, and suppose that $\varphi: F \to F$ is a pseudo-Anosov homeomorphism fixing a puncture $p$ of $F$. Then the mapping torus of $\varphi$ is a hyperbolic 3-manifold $M_\varphi$, which contains a maximal cusp $C$ corresponding to the puncture $p$. We show that the geometry of the maximal cusp $C$ can be predicted, up to explicit multiplicative error, by the action of $\varphi$ on the complex of essential arcs of in the surface $F$, denoted $A(F)$.

This result is motivated by an analogous theorem of Brock, which predicts the volume of $M_\phi$ in terms of the action of $\varphi$ on the pants graph $P(F)$. However, in contrast with Brock’s theorem. our result gives effective estimates, and is proved using completely elementary methods. This is joint work with Saul Schleimer.

This entry was posted in away talks. Bookmark the permalink.